skullandbones / uTmax

uTmax Linux GUI program for the uTracer3 Thermionic Valve Tester
4 stars 3 forks source link

Version no longer running with Ubuntu 24.04 or with Fedora 40 Workstation #40

Open paulusvo opened 5 days ago

paulusvo commented 5 days ago

After having successfully used uTmax for over a year now on Ubuntu 22.04, my laptop suddenly crashed due to some keyboard hardware problem (no more caps). In an attempt to solve this I upgraded to Ubuntu 24.04. During this update no longer needed packages were removed. But after copying over the entire /home/myuser/uTmax_files from a backup, and executing the uTmax script, nothing is happening and the following errors are generated in /var/log/syslog: 2024-10-11T12:18:58.624750+02:00 hplaptop kernel: do_not_run_uTma[9567]: segfault at 0 ip 0000000000000000 sp 00007ffd6c98fc08 error 14 in do_not_run_uTmax[63f0ef598000+29000] likely on CPU 0 (core 0, socket 0) 2024-10-11T12:18:58.624777+02:00 hplaptop kernel: Code: Unable to access opcode bytes at 0xffffffffffffffd6.

Then I took another laptop running Fedora 40 Workstation, and unzipped the file uTmax_linux on there. It generated uTmax_files in my home folder, but when launching the uTmax script, the same thing happens.

When activating the debug_info=1 (default=0) in script uTmax, launching the script returns this one line: Segmentation fault (core dumped)

skullandbones commented 4 days ago

@paulusvo this is my quick response as I am short of time today. I don't know your skill level but a segmentation fault are typically caused by processing bad data which triggers a bad code flow which can cause a non-existent memory location to be accessed which triggers a segmentation fault (SIGSEGV). You could try to start uTmax with no user input files defined to see what happens and create fresh blank data files. Then reintroduce information to see when the crash occurs - this may mean a data file has been corrupted.

I guess that I don't have the actual uTmax source code that you are using. I wonder how you can get that to me? What is the uTmax script contents ?

Did you rebuild the uTmax binary after installing the new Ubuntu or Fedora Oses ? Sometimes, compiler toolchains change and system libraries are modified which potentially can upset a binary (executable) that has been copied. I suggest rebuilding uTmax on the new OS to see whether that helps.

You could try running uTmax inside gdb and try to get a backtrace of the crash. This would help to see the code flow at the point of the crash and may give a hint.

skullandbones commented 2 days ago

@paulusvo you reported the crash:

2024-10-11T12:18:58.624750+02:00 hplaptop kernel: do_not_run_uTma[9567]: segfault at 0 ip 0000000000000000 sp 00007ffd6c98fc08 error 14 in do_not_run_uTmax[63f0ef598000+29000] likely on CPU 0 (core 0, socket 0)
2024-10-11T12:18:58.624777+02:00 hplaptop kernel: Code: Unable to access opcode bytes at 0xffffffffffffffd6.

I think this is a NULL pointer dereference crash as shown by segfault at 0 which suggests that a bad pointer was used. This can happen if a pointer was not initialised. Best case would be that it might be dependent on your user data contents rather than the Linux libraries.

I am unable to find the do_not_run_uTmax symbol in my uTmax codebase so I don't know what that is. These days I use ARM64 and not x86_64 and that might explain why I can't find the symbol.

I have an old laptop kicking around, so I will try to install Ubuntu 24.0 on it and then build and run my version of uTmax. This will take some days.