-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
TMapFile can't work #13511
Comments
That is the 'correct' behavior,
Can you copy/paste the entire output in that case? |
With ROOT 6.12.06 on Ubuntu 20.04.2 LTS, the output of running ./hisprod is as following,
The output of running ./hisplot in another terminal is listed below,
|
I noticed that the code you upload contains:
This call is only valid when used in an unnamed macro. In all other scenario it has the potential of being harmful (undo/reset too many things). Please try again after removing those lines. |
In addition on my version of Ubuntu the default linker behavior is to drop library that it deems 'not needed
shows nothing. To fix this I use this line in your Makefile:
And after that it works perfectly. |
Note that all ROOT application will have a |
Many thanks for your effort, I would try your tipps on different Ubuntu system and update to you soon. |
Compiling the codes with
( gRoot->Reset() was removed) OS: Ubuntu 16.04.1
ROOT: 6.22.00 (binary); Make error,
ROOT: 6.22.00 (binary), 6.24.8 (binary), 6.26.10 (binary) and 6.28.04 (binary) came across the same “Make error” as above. |
OS: Ubuntu 18.04.6
ROOT: 6.22.00 (binary), Make error, same as 6.20.00
|
OS: Ubuntu 20.04.4 Only ROOT 6.28.04 works with the proposed ROOT-CONFIG. ROOT: 6.13.08 (binary); Compiling works, but missing libtinfo.so.5 for running.
ROOT 6.22.00 (binary); TMapFile: works, TApplication: failed
ROOT 6.24.8 (binary); TMapFile: works; TApplication: failed with the same error as above |
Concerning the TApplication, somehow it often failed when the code was compiled with -lNew, which is required by TMapFile. Indeed with line below in the makefile, |
And are there more solutions for using TMapFile on one old system such as Ubuntu 16 or 18, since the DAQ is running on it? |
One more explicit example, on Ubuntu 18.04 LTS, Since TApplicatioin is always available for ROOT, is there any solution to make TApplication work when the option "-Wl,--no-as-needed -lNew" is introduced? |
It works for me. In your example, Isee:
What is going on there? Do you have this |
Hi, Philippe, Many thanks for your effort. Indeed, the case of missing libtinfo.so.5 happened to the root versions of 6.14.06, 6.16.00 and 6.18.04, however the libtinfo.so.6 is availabe on Ubuntu 20.04.4. From 6.20.00 on, the error of missing libtinfo.so.5 does not appere any more. Maybe we could focus on one specific OS, for instance, Ubuntu 20.04.4. Have you tested the macros on Ubuntu 20.04.4? Or which system and which version have you used? Concerning the ROOT versions (6.24.08, 6.26.10 and 6.28.04) on the Ubuntu 20.04.4 (gcc 9.4), those 3 ROOT versions all have been tested with gcc9.4, however, except for 6.28.04, the 6.24.08 and 6.26.10 both don't work with TApplication when the macro was compiled with the ROOT-CONFIG option of "-Wl,--no-as-needed -lNew". Without the option "-Wl,--no-as-needed -lNew", the TApplication works properly as expected. Could you have a closer look at this issue? What I want is to have more working combinations of ROOT and Ubuntu, therefore I don't have to update each OS system and the EMS system, which is quite challenging. Many thanks in advance. |
Hi, Philippe, Just an update to the issue, But problems still remain:
run the demo macro of TMapFile, similar error appears,
With "-lNew" to compile the macro, the demo macro of TApplication works fine, but the demo macro of TMapFile shows the simiar error as before, i.e.,
This is the latest test with newer OS version and ROOT version. It would be highly appreciated you could have a look at this after Christmas holidays:-). Indeed, Merry Christmas and Happy New Year! Huagen |
indicates that |
After upgrading ROOT to 6.30, one of our applications also started giving us the error mentioned in this thread
A little research led me to this: https://root-forum.cern.ch/t/aborting-with-std-align-val-t-is-not-implemented-yet-rhel-9-2/55989. If I understand correctly, this is the situation:
Please elaborate if I am missing something. This is a bit of an issue. You do realize that EPEL 9 provides just such a broken version (ROOT 6.30.02 with -std=c++17). Hence, on RHEL 9/Alma 9 etc. (i.e. the current go-to version of Linux at many labs), anyone who needs to use Additionally, on the latest version of macOS, Sonoma, only ROOT 6.30+ is supported. Hence, any code that uses If I might make a suggestion: I would mention, or better: highlight, such regressions in the release notes of a new version. Or better yet, not consider a new release ready until such significant regressions are resolved. Also, broken functionality could be caught at compile time instead of letting user code hit a runtime |
Check duplicate issues.
Description
Dear Rooters,
Indeed I used the TMapFile together with TApplication to realize the online monitoring for my DAQ. After having tried many combinations of ROOT and ubuntu versions, finally it worked with ROOT 6.12.06 on Ubuntu 16.04.7 LTS (gcc 5.4.0).
The main problem is remaining with the TMapFile which requires -lNew to be included in the makefile. Once this works, the TApplication just doesn't work with error message of segmentation fault or violation. Or vice versa, TApplication works but TMapFile doesn't work.
In order to repeat the errors, I collected the three ROOT example macros (as attached) and created a makefile to compile them. In the Makefile, the option of --new or -lNew have been added. One can include them or comment them out.
On Ubuntu 20.04.1 LTS (gcc 9.4.0), with ROOT version from 6.12.06 to 6.28.04, none of the combinations got to work. For instance, when the TMapFile works with ROOT 6.12.06, then the TApplication returns an error of "Segmentation violation".
With a newer ROOT, e.g. 6.28.04, the TApplication works but the TMapFile got the error message
Error in TMapFile::TMapFile : no memory mapped file capability available
Use rootn.exe or link application against "-lNew"
Could you guys have a look at this problem and find out what happened or may find a solution? Many thanks in advance.
Huagen Xu from FZ Juelich, IKP
root_examples.zip
Reproducer
As attached, there are three Macro files plus one Makefile. Those three files are all the ROOT examples to demostrate how the TMapFile as well as the TApplication work. To reproduce the problem described above, one could follow the tipps below.
In the Makefile, it is required to have the link of -lNew or --new for running TMapFile. With different combinations of ROOT and operating versions, the error message might be different.
ROOT version
Ubuntu 20.04.2 LTS
ROOT 6.12.06 to 6.28.04
Installation method
both of compiling and binary package
Operating system
Ubuntu
Additional context
No response
The text was updated successfully, but these errors were encountered: