-
Notifications
You must be signed in to change notification settings - Fork 2
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
Could not find heap data for the \'MATRIX\' variable-length array column. #288
Comments
I have not this issue in my virtual environment. Which is the docker running the service? |
This is not happening in your service. |
Could it be something related to the |
I would guess possibly related to |
I reproduced it locally, and it happens here oda_api/oda_api/data_products.py Line 310 in 02e47e3
|
After some more debugging with @ferrigno , we think we figured out where the problem is. It seems to be related to the We tried to go through each step, and it seems that there is a problem the moment we try to oda_api/oda_api/data_products.py Line 474 in ec280c3
While researching online, it seems that "pickle isn't supported for HDUs ..." which might explains our issue. What do you think? Perhaps an options is to rewrite those functions, or use a different approach |
It is not supported in a sense that nobody guarantees it works. Since we really need serialization of fits objects, it's our responsibility to make sure it does. In the past we made changes and contributions to public packages to make sure this functionality works. I propose you first of all make a narrow test in oda-api to demonstrate exactly the serialization problem. Then we see how to best fix it. Actually maybe in our case we can avoid using |
This morning I had a zoom meeting with @burnout87, I made a test with ISGRI rmf files, with the same structure as in the IBIS one, at least for the column storing the RMF matrix. The encoding/decoding workflow works as expected, indeed, if that would not work, the entire workflow tested in the oda_api would fail. This means that the issue could be in the IBIS rmf file or in the astropy.fits module. @ferrigno did you ever test IBIS rmf against oda_api? Is it possible that software writing the IBIS rmf uses a different approach or a different cfitsio version compared to the one used in ISGRI? Another possibility could be related to the size of the matrix exceed some buffer. By the way I guess IBIS and ISGRI are different instrument Probably, the best approach, would be to write fake RMF files, increasing incrementally the size of the matrix column (both in number of rows, and element per row) and check if the problem shows up above a given size |
ISGRI is part of IBIS. ISGRI is the only part of IBIS we use in ODA. For us IBIS==ISGRI. There can be differences, especially in what concerns variable size arrays. Which is why I ask @burnout87 to please add a test for the file @ferrigno had trouble with. I agree that there must be something peculiar or problematic about this file. And indeed we were writing and passing this kind of files RMF since the very beginning. |
All concurs towards the fact that one needs to re-engineer the oda_api data_product handling with numpy>=2.0. |
Completely clean installation is in the CI in the actions. |
Not finished to make the test, maybe later. |
It remains unclear to me why it's hard to explain that starting the the test is the best way to achieve clean result which can be discussed and communicated easily. |
test added oda_api/tests/test_data_products.py Line 40 in d203616
it fails with : astropy version 6.1.3 numpy version 1.26.4 oda_api Version: 1.2.28 |
See the related PR #286 |
An issue observed in isgri-expert workflow by @ferrigno . Might have something to do with new python? Or not.
https://cdci.sentry.io/issues/5783401903/?alert_rule_id=723253&alert_timestamp=1725201418390&alert_type=email&environment=production¬ification_uuid=18b8fc99-5748-4013-b594-1cf172b92a6c&project=1467382&referrer=alert_email
The text was updated successfully, but these errors were encountered: