Uploaded image for project: 'HiveMind'
  1. HiveMind
  2. HIVEMIND-44

Race Conditions in Construction of Threaded Service

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0
    • None
    • framework
    • None
    • J2SDK 1.4.2, Windows XP, Eclipse, Log4J

    Description

      Basically the problem occours when two threads simultaneously construct instances of threaded service.

      You can reconstruct the bug, by creating 10-20 threads in a for loop, and let each of this threads call the threaded service. A stack trace similar to this should appear:

      org.apache.hivemind.ApplicationRuntimeException: Unable to construct service Service.ThreadedService1: org.apache.hivemind.ApplicationRuntimeException
      at org.apache.hivemind.impl.servicemodel.ThreadedServiceModel.constructServiceForCurrentThread(ThreadedServiceModel.java:162)
      at org.apache.hivemind.impl.servicemodel.ThreadedServiceModel.getServiceImplementationForCurrentThread(ThreadedServiceModel.java:139)
      at $ThreadedProxy_fe54269949_6._service($ThreadedProxy_fe54269949_6.java)
      at $ThreadedProxy_fe54269949_6.foo($ThreadedProxy_fe54269949_6.java)
      at testing.bugs.TestCase1$1.run(TestCase1.java:50)

      As this is time-critical problem it does not always happen. My observation is that the longer the construction of the service takes (e.g. a lot of (at least 3-4) service properties) the more likely the problem occours. It also "helps" to have logging at debug level.

      If neccessary I've got source code to reproduce the problem (but with SDL module descriptors). The same problem occours with pooled service module, too.

      To fix this I guess constructServiceForCurrentThread() should be synchronized. From looking at the source code of getServiceImplementationForCurrentThread it seems like it has to be synchronized, too.

      Attachments

        1. patch.txt
          1 kB
          James Carman

        Activity

          People

            hlship Howard Lewis Ship
            haraldm Harald Meyer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: