-
Notifications
You must be signed in to change notification settings - Fork 28
Closed
Description
The extract method is no longer thread safe, particularly these member data:
coatjava/common-tools/clas-detector/src/main/java/org/jlab/detector/pulse/ModeAHDC.java
Lines 52 to 57 in 8b232c1
| private short[] samples; | |
| private Pulse pulse; | |
| private long time_ZS; | |
| private int binMax; | |
| private int numberOfBins; | |
| private int effectiveNumberOfBins; |
For example, when sample count gets overwritten by a competing thread, from any RG-L logs:
2026-01-06 00:36:46.154: Error in 129.57.138.232%7300_java:clas12-3:AHDC (ID: 0):
Error processing input event
java.lang.ArrayIndexOutOfBoundsException: Index -99 out of bounds for length 30
at org.jlab.detector.pulse.ModeAHDC.waveformCFAprocessing(ModeAHDC.java:252)
at org.jlab.detector.pulse.ModeAHDC.extract(ModeAHDC.java:380)
at org.jlab.detector.pulse.HipoExtractor.getPulses(HipoExtractor.java:134)
at org.jlab.detector.pulse.ModeAHDC.update(ModeAHDC.java:397)
at org.jlab.service.ahdc.AHDCEngine.processDataEvent(AHDCEngine.java:120)
at org.jlab.clas.reco.ReconstructionEngine.filterEvent(ReconstructionEngine.java:368)
at org.jlab.clas.reco.ReconstructionEngine.execute(ReconstructionEngine.java:407)
at org.jlab.clara.sys.ServiceEngine.executeEngine(ServiceEngine.java:227)
at org.jlab.clara.sys.ServiceEngine.execute(ServiceEngine.java:153)
at org.jlab.clara.sys.Service.lambda$execute$2(Service.java:178)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Metadata
Metadata
Assignees
Labels
No labels