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

test_save_restore segfaults on s390x #1655

Open
opoplawski opened this issue Oct 24, 2023 · 8 comments
Open

test_save_restore segfaults on s390x #1655

opoplawski opened this issue Oct 24, 2023 · 8 comments
Labels
BigEndian concerns BigEndian maachines bug Something isn't working ON HOLD : Please Answer question GDL Team is Waiting for external input

Comments

@opoplawski
Copy link
Contributor

This seems to be new with the latest weekly snapshot compared with 1.0.2 (or possibly some other dependency since it was last built in Fedora):

        Start 160: test_save_restore.pro
160: Test command: /builddir/build/BUILD/gdl-unstable-f29c1fa/build/src/gdl "-quiet" "-e" "if execute('test_save_restore') ne 1 then exit, status=1"
160: Working Directory: /builddir/build/BUILD/gdl-unstable-f29c1fa/build/testsuite
160: Environment variables: 
160:  LC_COLLATE=C
160:  GDL_PATH=/builddir/build/BUILD/gdl-unstable-f29c1fa/testsuite/:/builddir/build/BUILD/gdl-unstable-f29c1fa/src/pro/
160:  GDL_STARTUP=
160:  IDL_STARTUP=
160: Test timeout computed to be: 3600
160: % Compiled module: TEST_SAVE_RESTORE.
160: % Compiled module: GDL_IDL_FL.
160: % Compiled module: GIVE_LIST_NUMERIC.
160: % TEST_SAVE_NUMERIC: SAVE file <</tmp/GDL_save_test_numeric1.sav>>for numeric tests WRITTEN
160: % TEST_SAVE_NUMERIC: SAVE file <</tmp/GDL_save_test_numeric1_Z.sav>>for numeric tests WRITTEN
160: % RESTORE: Error Reading File: /tmp/GDL_save_test_numeric1.sav.
160/197 Test #160: test_save_restore.pro ..............***Exception: SegFault  0.22 sec

I'll see if I can get on a s390x machine later to try to get more information.

@GillesDuvert
Copy link
Contributor

Thank @opoplawski , this is for a 32-bit machine, yes?
In retrospect that may indicate that an #ifdef is lacking to avoid using 64 bit positioning as done in the last patch.

@GillesDuvert GillesDuvert added bug Something isn't working 32bit labels Oct 24, 2023
@opoplawski
Copy link
Contributor Author

No, it's 64-bit, but it is big-endian.

@GillesDuvert GillesDuvert added BigEndian concerns BigEndian maachines and removed 32bit labels Oct 25, 2023
@GillesDuvert
Copy link
Contributor

Ah, well, indeed there is this 64 bit address composed from 2 32 bits integers, that's it.

@GillesDuvert
Copy link
Contributor

@opoplawski please test current patch (PR #1666)

@opoplawski
Copy link
Contributor Author

Thanks, but no luck:

        Start 160: test_save_restore.pro
160: Test command: /builddir/build/BUILD/gdl-unstable-f29c1fa/build/src/gdl "-quiet" "-e" "if execute('test_save_restore') ne 1 then exit, status=1"
160: Working Directory: /builddir/build/BUILD/gdl-unstable-f29c1fa/build/testsuite
160: Environment variables: 
160:  LC_COLLATE=C
160:  GDL_PATH=/builddir/build/BUILD/gdl-unstable-f29c1fa/testsuite/:/builddir/build/BUILD/gdl-unstable-f29c1fa/src/pro/
160:  GDL_STARTUP=
160:  IDL_STARTUP=
160: Test timeout computed to be: 3600
160: % Compiled module: TEST_SAVE_RESTORE.
160: % Compiled module: GDL_IDL_FL.
160: % Compiled module: GIVE_LIST_NUMERIC.
160: % TEST_SAVE_NUMERIC: SAVE file <</tmp/GDL_save_test_numeric1.sav>>for numeric tests WRITTEN
160: % TEST_SAVE_NUMERIC: SAVE file <</tmp/GDL_save_test_numeric1_Z.sav>>for numeric tests WRITTEN
160: % RESTORE: Error Reading File: /tmp/GDL_save_test_numeric1.sav.
160/197 Test #160: test_save_restore.pro ..............***Exception: SegFault  0.32 sec

@GillesDuvert
Copy link
Contributor

hm, I'm not very good at 64 bit endianness.

GillesDuvert added a commit to GillesDuvert/gdl that referenced this issue Nov 14, 2023
@GillesDuvert
Copy link
Contributor

retried with #1672

GillesDuvert added a commit that referenced this issue Nov 16, 2023
@GillesDuvert
Copy link
Contributor

incidentally this permitted to question the code of saverestore.cpp and improve compatibility... with IDL, not nevessary bigEndian 64 bit machines.

Wonder if GDL pass tests on other big-endian machines? Other parts of code seem to endian-naive.

Wonder if you have also M1 linuxes in your test machines?(not a BE machine, but gives us a lot of trouble)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BigEndian concerns BigEndian maachines bug Something isn't working ON HOLD : Please Answer question GDL Team is Waiting for external input
Projects
None yet
Development

No branches or pull requests

2 participants