Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-1203

Batch inserts through Maxscale with C/J stall

    XMLWordPrintable

Details

    • 2017-31, 2017-32

    Description

      User had reported this issue in MXS-1047 against 2.0.2 - They are still seeing it in 2.0.3, 2.0.4 and 2.1.1

      getting period EOF errors when executing select

      1.5.5 driver
      2.1.1 max scale
      10.1.19-MariaDB-enterprise

      there are no errors on the proxy or on any of the nodes.

      Caused by: java.io.EOFException: unexpected end of stream, read 0 bytes from 4

      at org.mariadb.jdbc.internal.packet.read.ReadPacketFetcher.getReusableBuffer(ReadPacketFetcher.java:178)
      at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1055)
      Update Issue Reply Reply as Note Assign Issue To Myself Mark as Duplicate Close Issue
      Signup as Authorized Replier Change Status To >

      Test case:

      public class BatchInsert {
       
          static final String ADDRESS = "127.0.0.1";
          static final String PORT = "4006";
          static final String USER = "maxuser";
          static final String PASSWORD = "maxpwd";
          static final String DB = "test";
       
          public static void main(String[] args) {
              try (Connection connection = DriverManager.getConnection("jdbc:mariadb://"
                      + ADDRESS + ":" + PORT + "/" + DB + "?user=" + USER + "&password="
                      + PASSWORD + "&useBatchMultiSendNumber=500")) {
                  Statement stmt = connection.createStatement();
                  stmt.execute("DROP TABLE IF EXISTS tt");
                  stmt.execute("CREATE TABLE tt (d int)ENGINE=BLACKHOLE");
                  for (int i = 0; i < 300; i++) {
                      stmt.addBatch("INSERT INTO tt(d) VALUES (1)");
                      if (i % 3 == 0) {
                          stmt.addBatch("SET @test2='aaa'");
                      }
                  }
                  stmt.executeBatch();
                  System.out.println("finished");
              } catch (Exception e) {
                  System.out.println("Error: " + e.getMessage());
              }
          }
      }
      

      The backend protocol module discarded extra data after a response to session command was received. The router also didn't write data to the master if it was already executing something.

      Attachments

        Issue Links

          Activity

            People

              markus makela markus makela
              kjoiner Kyle Joiner (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.