Closed olebole closed 1 year ago
Thanks for the report. I think I see the problem. I'll make a PR.
I'm not sure how to test 32 bit in github actions
Just for this case, I can check for you. Other than that, here is what I do for IRAF: github/workflows/citest.yml#L38-L41
sudo dpkg --add-architecture i386
sudo apt-get update -y
sudo apt-get install -y gcc-multilib libcurl4-openssl-dev:i386 libexpat1-dev:i386 libreadline-dev:i386 zlib1g-dev:i386
You can install any package with the :i386
suffix, even Python. Not sure how far it works.
I am currently doing an upgrade of the python-fitsio Debian package to the latest version.
On a (32-bit) i386, the
test_table.py::test_table_read_write
test creates a core dump caused by a segmentation fault. With gdb, I found that this happens in https://github.com/esheldon/fitsio/blob/54cc73d4457d827c0efe0aca0ba7ff3d91ea3654/fitsio/fitsio_pywrap.c#L3555-L3558because
sortind
is set to NULL.sortind
was an argument for this function read_binary_rec_columns(), it was called here: https://github.com/esheldon/fitsio/blob/54cc73d4457d827c0efe0aca0ba7ff3d91ea3654/fitsio/fitsio_pywrap.c#L3643-L3653Here,
sortindObj
seems OK (it points to{ob_refcnt = 3, ob_type = 0xf70d3040 <PyArray_Type>}
, andnsortind
is 141220876 after theget_int64_from_array(sortindObj, &nsortind)
call, but the function returns a NULL.More of the stacktrace:
The full build log is here.