Uploaded image for project: 'Red Hat Data Grid'
  1. Red Hat Data Grid
  2. JDG-7801

[GHI#16462] JDBC-Store does not write to database in cluster mode

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • RHDG 8.6.0 GA
    • None
    • None
    • None

      We are using a shared transactional cache with an underlying JDBC store. The cache is configured as REPL_SYNC.

      When executing cache.put() operations, the entry is added to the cache, but in some cases it is not written to the database. In approximately 50% of the test cases, the value is not persisted successfully.

      The setup works correctly when running with a single node (no clustering). However, when using two nodes, the problem occurs.

      I have created a test project to reproduce the issue. The project is configured to use Infinispan 14.0.35, which is the version we currently use. The same issue also occurs with newer versions, including Infinispan 15.

      Test-Project: https://github.com/thaefner/infinispan-jdbc-store-bug

      Please refer to the README.md for instructions on how to set up the database and IP addresses.

      We have debugged Infinispan but have not been able to identify where the problem occurs. It may be related to the following code section:
      infinispan/persistence/jdbc-common/src/main/java/org/infinispan/persistence/jdbc/common/sql/BaseTableOperations.java

      Line 166 in 20cae30

      public void batchUpdates(Connection connection, int writePublisherCount, Publisher<Object> removePublisher,

       

      We use the JDBC cache store as our primary persistence mechanism. Therefore, this issue is a major showstopper for us, as it leads to data loss in production.

      At the moment, the only workaround available to us is to run the system in a single-node cluster, which is not a viable solution for all of our customers.

      Expected behavior

      cache.put() should always persist into the database.

      Actual behavior

      When executing cache.put() operations, the entry is added to the cache, but in some cases it is not written to the database. In approximately 50% of the test cases, the value is not persisted successfully.

      How to Reproduce?

      Test-Project: https://github.com/thaefner/infinispan-jdbc-store-bug
       
       
       
       

              rh-ee-jbolina Jose Bolina
              rhn-support-afield Alan Field
              Anna Manukyan Anna Manukyan
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: