Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Volume undo can crash if bucket was collected in the meantime #5729

Closed
3 tasks
philippotto opened this issue Sep 14, 2021 · 0 comments · Fixed by #5733
Closed
3 tasks

Volume undo can crash if bucket was collected in the meantime #5729

philippotto opened this issue Sep 14, 2021 · 0 comments · Fixed by #5733
Assignees
Labels

Comments

@philippotto
Copy link
Member

Description

context: volume annotation + undo
problem:

const bucketData = bucket.getData();

getData can fail if the bucket was collected in the meantime. ideally, we would write a test which provokes this scenario and then fix this.

Steps to Reproduce the bug

  • Cannot reproduce the bug anymore / needs deeper investigation.

not clear yet

Your Environment for bug

  • Browser name and version: e.g. Chrome 39
  • Operating System and version: e.g. Windows 10
  • Version of WebKnossos (Release or Commit):
  • Specific to long-running jobs (set jobsEnabled=true in application.conf)
  • Specific to webKnossos.org (set isDemoInstance=true in application.conf)
@philippotto philippotto self-assigned this Sep 30, 2021
philippotto added a commit that referenced this issue Sep 30, 2021
philippotto added a commit that referenced this issue Oct 12, 2021
…#5728 + #5733)

* remove dead and unnecessary code

* comment out uncalled push function

* add more volume-related tests and fix two bugs

* add console.error if async task queue fails

* fix tests, add comments and add crash-provoking test

* make dynamc overwriting of MAXIMUM_BUCKET_COUNT_PER_LAYER work in spec

* fix test.sh

* reference issue for bug/todo

* update changelog

* fix linting

* fix tests

* fix --timeout param for test.sh

* use snapshot tests in volume tracing tests and clean up test.sh

* Update tools/test.sh

Co-authored-by: Daniel <[email protected]>

* fix race condition in unsetting dirty flag

* WIP: implement first version of flood fill (resampling is still broken)

* fix z index

* refactor flood fill code and fix some bugs

* fix flow

* fix more xyz/uvw bugs

* simplify code which increments dirtyCount

* limit 3d flood fill to certain bounding box, inform user whether the limit was reached, show progress for filling and further fixes for 3d flood fill

* build a test which crashes undo because getData() was called on a gc-ed bucket

* fix crashing undo if bucket was collected in meantime (see #5729) and add progress indicator to undo/redo

* fix incorrectly mocked bucket data, properly await undo/redo and clean up

* use redux channels to avoid missing critical actions, such as undo or volume-related actions, when being busy; also make undo/redo buttons AsyncClickable

* clean up

* fix flow

* fix building docker image in CI

* add more comments to applyAndGetRevertingVolumeBatch

* rename action channels

* rename VoxelNeighborStack3D to VoxelNeighborQueue3D

* run all volume saga integration specs

* clean up tests

* allow to switch between 2D and 3D for fill tool

* fix failing mesh loading for hybrid tracings

* implement smart bbox growing for flood fill and create bbox for flood fill limit if it was reached

* fix volumetracing_saga.spec

* fix abort criterium in flood fill; add warning if bucket was given too small array buffer; fix off-by-one in covered floodfill bbox

* fix test for bucket garbage collection

* mark UI as busy when undo/redo/floodfill are computing

* fix tests by clearing stale push and pull queues properly when reinitializing the model

* update snapshot

* fix flow

* incorporate PR feedback (1/x)

* incorporate more feedback

* don't show progress handling if undo stack is empty and refactor corresponding code

* inform user if floodfill bbox was added and show that message for 10s

* update progress UI in-place, also write source_id into bbox name, don't add to undo stack if floodfill is no-op, fix flow and clean up

* only show undo/redo progress message for volume actions

* minor tweaks

* add a comment for USE_FLOODFILL_VOXEL_THRESHOLD

* intersect floodfill bbox with datasets bounding box and add snapshot test

* decrease snapshot size

* fix style of disabled undo/redo buttons

* improve comments

* make floodfill bbox message closable and deduplicate debug info code

* adapt antd typing according to webknossos/pull/5738

Co-authored-by: Daniel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant