jw3/example-daffodil-debug

Missing scope for frame

arosien opened this issue · 4 comments

Consistently happens in jpeg.dfdl.xsd with works.jpg.

Log prior to error:

2021-06-17 12:22:13,057 [io-compute-6] DEBUG d.d.d.DAPodil - R> #34 next {"threadId":1} 
2021-06-17 12:22:13,058 [io-compute-6] DEBUG d.d.d.DAPSession - <R #34 next null 
2021-06-17 12:22:13,059 [io-compute-1] DEBUG d.d.d.DAPSession - <E stopped step 
2021-06-17 12:22:13,061 [io-compute-3] DEBUG d.d.d.Parse - post-control await 
2021-06-17 12:22:13,062 [io-compute-4] DEBUG d.d.d.DAPSession - <E output 
2021-06-17 12:22:13,063 [io-compute-5] DEBUG d.d.d.DAPodil - R> #35 threads null 
2021-06-17 12:22:13,064 [io-compute-5] DEBUG d.d.d.DAPSession - <R #35 threads {"threads":[{"id":1,"name":"daffodil"}]} 
2021-06-17 12:22:13,068 [io-compute-5] DEBUG d.d.d.DAPodil - R> #36 stackTrace {"threadId":1,"startFrame":0,"levels":20} 
2021-06-17 12:22:13,068 [io-compute-5] DEBUG d.d.d.DAPSession - <R #36 stackTrace {"stackFrames":[{"id":3,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":52,"column":0,"name":"DataBlob"},{"id":2,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":49,"column":0,"name":"Segment"},{"id":1,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":2,"column":0,"name":"JFIF"},{"id":0,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":2,"column":0,"name":"JFIF"}],"totalFrames":4} 
2021-06-17 12:22:13,070 [io-compute-6] DEBUG d.d.d.Parse - pre-offer 
2021-06-17 12:22:13,070 [io-compute-6] DEBUG d.d.d.Parse - pre-checkBreakpoints 
2021-06-17 12:22:13,070 [io-compute-6] DEBUG d.d.d.Parse - pre-control await 
2021-06-17 12:22:13,087 [io-compute-6] DEBUG d.d.d.DAPodil - R> #37 scopes {"frameId":3} 
2021-06-17 12:22:13,088 [io-compute-6] DEBUG d.d.d.DAPSession - <R #37 scopes null 

There's a race: frame 3 was popped off and frame 4 was pushed on, but the UI then fetched frame 3. pre-offer is where the push happened, but where's the pop?

Parse.Debugee.step invokes control.step and then delivers the Debugee.State.Stopped event, but control.step shouldn't return until the data from the step has been committed (currently it races it).

Reopening, happens on frame 4 consistently now:

2021-07-07 15:27:59,413 [io-compute-7] DEBUG d.d.d.DAPodil - R> #42 threads null 
2021-07-07 15:27:59,414 [io-compute-7] DEBUG d.d.d.DAPSession - <R #42 threads {"threads":[{"id":1,"name":"daffodil"}]} 
2021-07-07 15:27:59,424 [io-compute-3] DEBUG d.d.d.DAPodil - R> #43 stackTrace {"threadId":1,"startFrame":0,"levels":20} 
2021-07-07 15:27:59,425 [io-compute-3] DEBUG d.d.d.DAPSession - <R #43 stackTrace {"stackFrames":[{"id":4,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":52,"column":0,"name":"DataBlob"},{"id":3,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":49,"column":0,"name":"Segment"},{"id":2,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":2,"column":0,"name":"JFIF"},{"id":1,"source":{"name":"jpeg.dfdl.xsd","path":"file:///Users/arosien/nteligen/example-daffodil-debug/src/main/resources/jpeg.dfdl.xsd","sourceReference":0},"line":2,"column":0,"name":"JFIF"}],"totalFrames":4} 
2021-07-07 15:27:59,435 [io-compute-5] DEBUG d.d.d.Parse - pre-offer 
2021-07-07 15:27:59,435 [io-compute-5] DEBUG d.d.d.Parse - pre-checkBreakpoints 
2021-07-07 15:27:59,435 [io-compute-5] DEBUG d.d.d.Parse - pre-control await 
2021-07-07 15:27:59,436 [io-compute-5] DEBUG d.d.d.Parse - waiting to be continued... 
2021-07-07 15:27:59,450 [io-compute-4] DEBUG d.d.d.DAPodil - R> #44 scopes {"frameId":4} 
2021-07-07 15:27:59,453 [io-compute-4] WARN  d.d.d.DAPodil - couldn't find scopes for frame 4: List((Id(5),Fill), (Id(3),Segment), (Id(2),JFIF), (Id(1),JFIF)) 
2021-07-07 15:27:59,453 [io-compute-4] DEBUG d.d.d.DAPSession - <R #44 scopes null