Open frcroth opened 4 days ago
The pull request introduces several enhancements and bug fixes to the WEBKNOSSOS project. It updates the changelog to reflect changes in asynchronous image file handling, improved error messages for job initiation, and enhanced logging for dataset loading errors. The BinaryDataService
class has been modified to improve error handling, including detailed logging and a new method for centralized error logging. Additionally, performance issues related to tree deletions and NML file imports have been addressed, ensuring better functionality and data integrity.
File | Change Summary |
---|---|
CHANGELOG.unreleased.md |
Updated to reflect changes in functionality, including asynchronous file handling and error messages. |
webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/BinaryDataService.scala |
Enhanced error handling in convertIfNecessary and handleBucketRequest , updated method signature for better logging. |
webknossos-datastore/app/com/scalableminds/webknossos/datastore/services/DatasetErrorLoggingService.scala |
Added withErrorLogging method for improved error logging handling various result cases. |
Objective | Addressed | Explanation |
---|---|---|
Log all data loading errors (#8081) | ❌ | The changes do not address logging errors occurring after bucket requests. |
precomputed://
, enhancing user experience with remote URIs.bug
, enhancement
, backend
In the datastore's burrow, changes bloom,
Asynchronous whispers chase away the gloom.
Errors now logged with a hop and a skip,
Bugs fixed with care, on a debugging trip.
Hooray for the fixes, let the data flow free,
A brighter tomorrow for you and for me! 🐇✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Nice, does the trick! I wonder if we can make this a little dryer. Maybe the
datasetErrorLoggingService
could have a single public function, something likewithErrorLogging[T](dataSourceId: DataSourceId, label: String, resultFox: Fox[T]): Fox[T]
. This could be called likedatasetErrorLoggingService.withErrorLogging(request.dataSource.id, "Converting data", conversionFunc(inputArray))
. What do you think? (Note that I did not try this, so it may not work exactly in this way).
I assume this would then be used for both conversion and handleBucketRequest? One problem is that the applicationHealthService is not available there, so should this be passed in? Should there still be a matching for internalError then? Additional notes:
I implemented it in such a way. What do you think?
Yes, that’s what I had in mind :)
Let’s remove applicationHealthService from the BinaryDataService and inject it in DatasetErrorLoggingService directly instead. That should make this a little more simple.
The other points are correct (if a little unfortunate). Let’s go with that :)
URL of deployed dev instance (used for testing):
Steps to test:
Issues:
(Please delete unneeded items, merge only when none are left open)
Summary by CodeRabbit
New Features
Bug Fixes