Skip to content

Data races in Geometry.java #4

@alx01011

Description

@alx01011

I have created a tool that detect data races in java.

The tool has detected the following races in Geometry.java:

  1. Race between read and write of field builtAccel:
  #0 org.sunflow.core.Geometry.intersect() Geometry.java:93
  #1 org.sunflow.core.Instance.intersect() Instance.java:135
  #2 org.sunflow.core.InstanceList.intersectPrimitive() InstanceList.java:30
  #3 org.sunflow.core.accel.BoundingIntervalHierarchy.intersect() BoundingIntervalHierarchy.java:559
  #4 org.sunflow.core.Scene.trace() Scene.java:199
  #5 org.sunflow.core.LightServer$1.run() LightServer.java:231
  #6 java.lang.Thread.run() Thread.java:844

 Previous write of size 8 at 0x7f2a7ef10038 by thread T16:
  #0 org.sunflow.core.Geometry.build() Geometry.java:119
  #1 org.sunflow.core.Geometry.intersect() Geometry.java:-1
  #2 org.sunflow.core.Instance.intersect() Instance.java:135
  #3 org.sunflow.core.InstanceList.intersectPrimitive() InstanceList.java:30
  #4 org.sunflow.core.accel.BoundingIntervalHierarchy.intersect() BoundingIntervalHierarchy.java:559
  #5 org.sunflow.core.Scene.trace() Scene.java:199
  #6 org.sunflow.core.LightServer$1.run() LightServer.java:231
  #7 java.lang.Thread.run() Thread.java:844```
  1. Race between read and write of field accel:
  Read of size 8 at 0x7f2a7ef10038 by thread T24:
  #0 org.sunflow.core.Geometry.intersect() Geometry.java:93
  #1 org.sunflow.core.Instance.intersect() Instance.java:135
  #2 org.sunflow.core.InstanceList.intersectPrimitive() InstanceList.java:30
  #3 org.sunflow.core.accel.BoundingIntervalHierarchy.intersect() BoundingIntervalHierarchy.java:559
  #4 org.sunflow.core.Scene.trace() Scene.java:199
  #5 org.sunflow.core.LightServer$1.run() LightServer.java:231
  #6 java.lang.Thread.run() Thread.java:844

 Previous write of size 8 at 0x7f2a7ef10038 by thread T16:
  #0 org.sunflow.core.Geometry.build() Geometry.java:119
  #1 org.sunflow.core.Geometry.intersect() Geometry.java:-1
  #2 org.sunflow.core.Instance.intersect() Instance.java:135
  #3 org.sunflow.core.InstanceList.intersectPrimitive() InstanceList.java:30
  #4 org.sunflow.core.accel.BoundingIntervalHierarchy.intersect() BoundingIntervalHierarchy.java:559
  #5 org.sunflow.core.Scene.trace() Scene.java:199
  #6 org.sunflow.core.LightServer$1.run() LightServer.java:231
  #7 java.lang.Thread.run() Thread.java:844

Those have been detected by running the DaCapo Benchmark Suite 23.11-Chopin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions