-
Notifications
You must be signed in to change notification settings - Fork 5
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
Problems with Durin plugin from XDS #30
Comments
Graeme suggested offline that I could try to check the last release - I downloaded the old plugin and tried, and got different issues. Hopefully this helps though. Old plugin: New plugin: |
Thanks for that @JunAishima - I presume any data set should trigger the problem even blanks? A test example would really help for debugging. The stack trace you sent is from XDS not Durin |
I would wager the error is coming from inside durin:
It's hard to tell which function exactly; the names appeared to be shortened and there are several starting with Can you output the symbol table for I would guess this is just a case of I think the code should just be updated to use |
Thank you @c-mita - given example data this would be much easier to debug That said - @JunAishima - if you could attach output of h5ls -rv that would be maybe helpful, so can look for a long string / likely overrun |
What is the best way to send a dataset to you? I got the ok for that |
@JunAishima thank you I see the data arriving as we discussed out of band. The |
OK, thank you for sharing the data I note that
There are 4 entries here but you only sent 3 data files. The 3rd data set contains only a few images but is properly formatted
I will test in a second (downloading the big data files now) but I suspect that this inconsistency is what is causing If you only process the first 2000 images in |
I get a segmentation fault under macOS as well, so we have a real problem here. Now investigating to work out precisely what the problem is. I suspect just processing 2,000 frames won't help |
Error for me (surprisingly) at
reading the |
OK, so we have malloc'd no bytes? That won't end well
But this would trigger an error when one comes to actually write some data in |
This is an Eiger2 - I see what appear to be the dimensions of the image in the HDF file at /entry/instrument/detector/module/data_size. Another set of fields that should contain the dimensions are /entry/instrument/detector/detectorSpecific/x_pixels_in_detector (also y_pixels...) |
The missing external file might be causing the problem. When calculating the dataset dimensions for a Dectris dataset, it walks over all numbered datasets in /entry/data in order, counting the length of the overall dataset (the bounds set by XDS don't matter at this point). During this walk, it overwrites the x-y dimensions from previous datasets with whatever the last one it read was. I would expect H5DOpen2 to fail when trying to open a dataset, but maybe not? Maybe it just gets an empty descriptor? And hence the last thing written to the x and y dimensions is 0? |
aah, I see that now. it looks like we have four data files defined (probably defined during the collection), and only 3 data files written out. Not sure how they precisely define the experiment, but it would help if it was being defined correctly. This could still be derailed by aborting a collection (not sure if they did that here). The plugin should be able to handle this case properly as well, so sounds like there could be improvements on both sides. |
Working on this properly now, I think it is a little more subtle than perhaps it at first looks. Short version - this is an unhandled error from if (retval < 0) {
free(frame_counts);
} else {
memcpy(desc->dims, dims, 3 * sizeof(*dims));
desc->data_width = data_width;
eiger_desc->n_data_blocks = n_datas;
eiger_desc->block_sizes = frame_counts;
}
return retval; where the return status is not checked. I think if I patch it to not do the free but to reshape this we can make it work as is, which is inelegant but more useful (probably) than actually error'ing |
@JunAishima after some hacking I have something which appears to (at least partially) work - the indexing fails but that is probably a geometry error - would you like to have a go? Currently working on the fix-30 branch, will need to do some additional tidying as there is an unhandled route which I think we probably want to handle (but maybe no?) |
@JunAishima sorry for the slow pick-up - but did you get a chance to test? I was tidying up unmerged branches |
We are having some issues with XDS using Durin where the plugin appears to have problems with memory allocation. This doesn't happen with all datasets. If it will be helpful, I can get permission to share the dataset offline.
malloc(): unaligned tcache chunk detected
free(): invalid pointer
Aborted (core dumped)
The text was updated successfully, but these errors were encountered: