Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-6195

sphinxse UPDATEs to rt indexes are incompatible with BINLOG settings

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: 5.5.37
    • Fix Version/s: None
    • Component/s: None
    • Labels:
    • Environment:
      debian squeeze

      Description

      CREATE TABLE `sphinx_auctions_2` (
        `id` bigint(20) unsigned NOT NULL DEFAULT '0',
        `weight` int(11) NOT NULL,
        `query` varchar(100) NOT NULL,
        `title` varchar(75) NOT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=SPHINX DEFAULT CHARSET=latin1 CONNECTION='sphinxql://192.168.179.103:9312/idx_oa_auctions'
      

      sphinx-2.1.7 configuration /etc/sphinx/sphinxse

      index idx_oa_auctions
      {
          type = rt
      
          path = /var/lib/sphinxsearch/data/mf_auctions
          morphology    = stem_en, soundex
      
          dict = keywords
      
          # should relate to index size
          # http://sphinxsearch.com/docs/2.1.7/rt-caveats.html
      
          # RAM chunk size limit
          # RT index will keep at most this much data in RAM, then flush to disk
          # optional, default is 32M
          #
          # rt_mem_limit              = 512M
      
          rt_field = title
      }
      
      MariaDB [opalauctions_com]> UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
      ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.                                       
      MariaDB [opalauctions_com]> SELECT @@binlog_format;
      +-----------------+                                                                                                                                                                                  
      | @@binlog_format |                                                                                                                                                                                  
      +-----------------+                                                                                                                                                                                  
      | MIXED           |                                                                                                                                                                                  
      +-----------------+                                                                                                                                                                                  
      1 row in set (0.00 sec)                                                                                                                                                                              
                                                                                                                                                                                                           
      MariaDB [opalauctions_com]> set binlog_format = 'ROW';
      Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                           
      > UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                              
      ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.                                       
      > set binlog_format = 'STATEMENT';                                                                                                        
      Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                           
      > UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
      ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.   
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              danblack Daniel Black added a comment - - edited
              > set sql_log_bin=0;
              Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                                   
              > UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
              ERROR 1031 (HY000): Table storage engine for 'sphinx_auctions_2' doesn't have this option      
              

              Same results above repeatable with supported REPLACE/INSERT

              > set sql_log_bin=1;
              Query OK, 0 rows affected (0.00 sec)
              
              > REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas');
              ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.
              

              However, it gets worse:

              > set sql_log_bin=0;
              Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                                   
              > REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas');                                                                                                 
              ERROR 1156 (08S01): Got packets out of order
              

              Upstream bug referring to lack of documentation and some similar faults: http://sphinxsearch.com/bugs/view.php?id=1952

              Show
              danblack Daniel Black added a comment - - edited > set sql_log_bin=0; Query OK, 0 rows affected (0.00 sec) > UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3; ERROR 1031 (HY000): Table storage engine for 'sphinx_auctions_2' doesn't have this option Same results above repeatable with supported REPLACE/INSERT > set sql_log_bin=1; Query OK, 0 rows affected (0.00 sec) > REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas'); ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved. However, it gets worse: > set sql_log_bin=0; Query OK, 0 rows affected (0.00 sec) > REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas'); ERROR 1156 (08S01): Got packets out of order Upstream bug referring to lack of documentation and some similar faults: http://sphinxsearch.com/bugs/view.php?id=1952
              Hide
              elenst Elena Stepanova added a comment -

              Hi Daniel,

              This or very similar problem was previously discussed in MDEV-5259, which was eventually closed as fixed in 10.0, and not worth fixing in 5.5.

              Do you disagree, do you consider it critical for 5.5?

              Show
              elenst Elena Stepanova added a comment - Hi Daniel, This or very similar problem was previously discussed in MDEV-5259 , which was eventually closed as fixed in 10.0, and not worth fixing in 5.5. Do you disagree, do you consider it critical for 5.5?
              Hide
              danblack Daniel Black added a comment -

              Given the number of other issues with trying to use sphinxse in a update mode I'm agreeing with leaving this for 5.5
              http://sphinxsearch.com/bugs/view.php?id=1952 / http://sphinxsearch.com/bugs/view.php?id=1953

              Hopefully some work gets done on the engine because its making a lot of assumptions and really only works in sphinx:// mode.

              Show
              danblack Daniel Black added a comment - Given the number of other issues with trying to use sphinxse in a update mode I'm agreeing with leaving this for 5.5 http://sphinxsearch.com/bugs/view.php?id=1952 / http://sphinxsearch.com/bugs/view.php?id=1953 Hopefully some work gets done on the engine because its making a lot of assumptions and really only works in sphinx:// mode.
              Hide
              elenst Elena Stepanova added a comment -

              As discussed above, closing as "Won't fix" (in 5.5).

              Show
              elenst Elena Stepanova added a comment - As discussed above, closing as "Won't fix" (in 5.5).

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  danblack Daniel Black
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved: