Several issues with Salome 9.12 in tuxedOs

Hello,
I am having several problems when using salome 9.12 in my two computers. here are a list of them:

  1. if I open geom, create something and then go to mesh module, and close the software I am getting
    SIGSEGV ‘segmentation violation’ detected. Address 0
    SIGSEGV ‘segmentation violation’ detected. Address 30
    SIGSEGV ‘segmentation violation’ detected. Address 8

  2. if I try to use explode or 3D sketch in geom, I am getting:
    GUI library corresponding to the user action can not be found or loaded

  3. If I repeat the 1. but instead of closing salome, I click in create a new file and go to geom, then ALL the toolbars will be disapear (and if I close salome and re open will be still missing until I go to view/toolbars and turn on one by one.

  4. In other distros I have used i always runned salome (universal linux) using ./salome if I run this, i get the splashscreen of salome that charges to 100% and disapears but nothing happends, and some time after the command ends without any message, IF i stop it (ctr+C) I get the following message. So I am running it from ./mesa_salome which gives the previous issues but in general work.

Traceback (most recent call last):
File “/home/franco/Programs/Salome/SALOME-9.12.0/BINARIES-CO7/SALOME/bin/salome/salomeContext.py”, line 718, in
status = context._startSalome(args)
File “/home/franco/Programs/Salome/SALOME-9.12.0/BINARIES-CO7/SALOME/bin/salome/salomeContext.py”, line 299, in _startSalome
res = getattr(self, command)(options) # run appropriate method
File “/home/franco/Programs/Salome/SALOME-9.12.0/BINARIES-CO7/SALOME/bin/salome/salomeContext.py”, line 390, in _sessionless
runSalome.runSalome()
File “/home/franco/Programs/Salome/SALOME-9.12.0/BINARIES-CO7/KERNEL/bin/salome/runSalome.py”, line 337, in runSalome
sleep(3.0)
KeyboardInterrupt
Traceback (most recent call last):
File “/home/franco/Programs/Salome/SALOME-9.12.0/./salome”, line 1266, in
main(args)
File “/home/franco/Programs/Salome/SALOME-9.12.0/./salome”, line 1255, in main
out, err, status = context.runSalome(args)
File “/home/franco/Programs/Salome/SALOME-9.12.0/BINARIES-CO7/KERNEL/bin/salome/salomeContext.py”, line 146, in runSalome
out, err = proc.communicate()
File “/usr/lib/python3.10/subprocess.py”, line 1146, in communicate
self.wait()
File “/usr/lib/python3.10/subprocess.py”, line 1209, in wait
return self._wait(timeout=timeout)
File “/usr/lib/python3.10/subprocess.py”, line 1959, in _wait
(pid, sts) = self._try_wait(0)
File “/usr/lib/python3.10/subprocess.py”, line 1917, in _try_wait
(pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt

I am using tuxedOS 2 which is ubuntu based https://os.tuxedocomputers.com/
I use salome almost every day, and I have digged the forum this and the one of salome_meca to see other publications of this different issues, no luck. I have my two pcs one with nvidia GPU and the other with AMD GPU (the one that comes with the CPU nothing fancy) and the two are showing all the cited problems.
I have also for the explode function done everything in this post gui library corresponding to the user action can not be found or loade / Salome-Meca usage / Code_Aster forums without luck either. If I run:

import os
os.system("ldd /opt/salome/V2019_univ/modules/GEOM_V9_3_0/lib/salome/libEntityGUI.so|grep found")

I get 256 as I am supposed to get.
I would really appreciate help with this issues… it makes the use of salome quite annoying :confused:

In order to help, I think we need more informations.

  1. which salome archive did you use for installation?
  2. tuxed OS2 is derived from which ubuntu version?
  3. try to run: salome --help
2 Likes

Hello,
thanks for the input.

  1. I used the 9.12 universal linux (ie., SALOME-9.12.0-199e46fd182dbe93514b9ec2beb64400.tar.gz)
  2. tuxed OS2 is based in ubuntu 22.04 LTS nevertheless it has some updated packages to site what I have found it is based in ubuntu 22.04 because of its stability, but we’re on a much newer Kernel and Mesa (if I look at the Mesa vr it is Mesa 23.3.5-0tux1 and kernel I have 6.5.0-10022-tuxedo)
  3. I am not 100% sure that the command you asked me was what you were looking for. I runned and this is the output in any case:

./salome --help
Usage: salome [command] [options] [–config=<file,folder,…>] [–with-env-modules=<env_module1,env_module2,…>]
Commands:
=========
start Start a new SALOME instance. Start a single SALOME_Session_Server_No_Server
process with environment relevant to the application and hosting all servants in it.
context Initialize SALOME context. Current environment is extended.
shell Initialize SALOME context, attached to the last created SALOME
instance if any, and executes scripts passed as command arguments.
User works in a Shell terminal. SALOME environment is set but
application is not started.
test Run SALOME tests.
info Display some information about SALOME.
doc <module(s)> Show online module documentation (if available).
Module names must be separated by blank characters.
help Show this message.
remote run command in SALOME environment from remote call, ssh or rsh.
withsession Start a new SWS SALOME instance with multiple servers hosting all servants.
connect In SWS context, Connect a Python console to the active SALOME instance.
kill <port(s)> In SWS context, Terminate SALOME instances running on given ports for current user.
Port numbers must be separated by blank characters.
killall Terminate all SALOME running SWS instances for current user.
Do not start a new one.
If no command is given, default is start.
Command options:
================
Use salome --help to show help on command. Available for the
following commands: start, shell, connect, test, info.
–config=<file,folder,…>
==========================
Initialize SALOME context from a list of context files and/or a list
of folders containing context files. The list is comma-separated, without
any blank characters.
–with-env-modules=<env_module1,env_module2,…>
================================================
Initialize SALOME context with the provided additional environment modules.
The list is comma-separated, without any blank characters.

Once that said, I am running right now ./salome test to see if anything is wrong there (i didnt know about this flag)
best regards

Running salome testsuite may be rather long.
To view the logs of the failed test, you would need to run an additional command that is given at the end of salome test

Why don’t you try salome version for UB22.04 instead of universal?

NB: there is also a convenient tool to check your system. See sat command
(I cannot remember it right now, would check it tomorow if you still need it)

Why don’t you try salome version for UB22.04 instead of universal?

I have but I am getting this error for ./salome and also for ./mesa_salome

SALOME_Session_Server_No_Server: error while loading shared libraries: libcdt.so.5: cannot open shared object file: No such file or directory

and then nothing else happends.

EDIT from ./salome test results some test did not passed:

The following tests FAILED:
687 - SHAPER_TestSewing_Groups.py (Failed)
1423 - SMESH_MGAdaptTests_without_session (Failed)
1631 - SMESH_blocFissure_01_without_session (Failed)
1632 - SMESH_blocFissure_02_without_session (Failed)
1633 - SMESH_blocFissure_03_without_session (Failed)
1634 - SMESH_blocFissure_04_without_session (Failed)
1635 - SMESH_blocFissure_05_without_session (Failed)
1636 - SMESH_blocFissure_06_without_session (Failed)
1668 - SMESH_test_import_1D2D_with_tetras_and_pyras (Failed)
1670 - SMESH_test_smeshplugins (Failed)
1679 - BLSURFPLUGIN_attractor (Failed)
1680 - BLSURFPLUGIN_attractor_edge_on_border (Failed)
1681 - BLSURFPLUGIN_attractor_point_outside_face (Failed)
1683 - BLSURFPLUGIN_enforced_vertex (Failed)
1684 - BLSURFPLUGIN_multithread (Failed)
1689 - BLSURFPLUGIN_prepro_intersections (Failed)
1690 - BLSURFPLUGIN_prepro_keep_gaps (Failed)
1691 - BLSURFPLUGIN_proximity (Failed)
1692 - BLSURFPLUGIN_quadrangles_gradation (Failed)
1693 - BLSURFPLUGIN_remove_tiny_edges (Failed)
1694 - BLSURFPLUGIN_sphere (Failed)
1695 - HYBRIDPLUGIN_cartesian_core_size (Failed)
1696 - HYBRIDPLUGIN_enforced_mesh (Failed)
1697 - HYBRIDPLUGIN_layers_imprinting (Failed)
1698 - HYBRIDPLUGIN_layers_imprinting_hexa_core (Failed)
1699 - HYBRIDPLUGIN_layers_with_snapping (Failed)
1700 - HYBRIDPLUGIN_mg_hybrid_pyramids (Failed)
1701 - HYBRIDPLUGIN_advanced_text_option (Failed)
1703 - GHS3DPLUGIN_ghs3dSetParametersDemo (Failed)
1704 - GHS3DPLUGIN_ghs3ddemo (Failed)
1705 - GHS3DPLUGIN_ghs3d_enfmesh (Failed)
1706 - GHS3DPLUGIN_ghs3d_enfvert (Failed)
1707 - GHS3DPLUGIN_ghs3d_optimization (Failed)
1721 - HOMARD_test_6 (Failed)
1768 - MEDCOUPLING_ParaMEDMEMTest_TestParaMEDMEM_Proc2 (Not Run)
1769 - MEDCOUPLING_ParaMEDMEMTest_TestParaMEDMEM_Proc3 (Not Run)
1770 - MEDCOUPLING_ParaMEDMEMTest_TestParaMEDMEM_Proc4 (Not Run)
1771 - MEDCOUPLING_ParaMEDMEMTest_TestParaMEDMEM_Proc5 (Not Run)
1772 - MEDCOUPLING_ParaMEDMEMTest_TestMPIAccess_Proc2 (Not Run)
1773 - MEDCOUPLING_ParaMEDMEMTest_TestMPIAccess_Proc3 (Not Run)
1774 - MEDCOUPLING_ParaMEDMEMTest_TestMPIAccessDEC_Proc4 (Not Run)
1775 - MEDCOUPLING_ParaMEDMEMTest_PyPara_Basics_Proc2 (Not Run)
1776 - MEDCOUPLING_ParaMEDMEMTest_PyPara_InterpKernelDEC_Proc4 (Not Run)
1777 - MEDCOUPLING_ParaMEDMEMTest_PyPara_InterpKernelDEC_Proc5 (Not Run)
1778 - MEDCOUPLING_ParaMEDMEMTest_PyPara_StructuredCoincidentDEC_Proc4 (Not Run)
1779 - MEDCOUPLING_ParaMEDMEMTest_PyPara_OverlapDEC_Proc4 (Not Run)
1818 - PARAVISADDONS_COMMON_testSliceRemesh0 (Failed)

Just install the package that provides libcdt.so.5 and it should work
In ubuntu, you can use, for instance:
apt install apt-file
apt-file update
apt-file search libcdt.so.5

but I have them in the system (sorry for my dumbness…)
If i do apt-file search libcdt.so.5
i get:

libcdt5: /usr/lib/x86_64-linux-gnu/libcdt.so.5
libcdt5: /usr/lib/x86_64-linux-gnu/libcdt.so.5.0.0

The command returns the name of the package (here: libcdt5) that provides the file you are looking for (here: libcdt.so.5).
Then just install libcdt5 package: apt install libcdt5

NB: you can repeat this procedure if you run into similar error messages when starting salome.

A safer way to proceed is to check that your system contains all the packages needed by salome. To do so,

  1. just run: /opt/SALOME-9.12.0-DB12/sat/sat config --list : this will give you the list of config on your host.
  2. for a given config (you should only have a config if you run from a fresh install), check your system
    /opt/SALOME-9.12.0-DB12/sat/sat config SALOME-9.12.0-native --check_system

Hello @Trophime ,
but it is actually installed thats why if I run apt-file search I got an output, no?
even more that supports this, if I run apt install libcdt5 I am getting:

libcdt5 is already the newest version (2.42.2-6).
libcdt5 set to manually installed.

I think it is more an issue that salome does not look in the correct place…

  1. I runned ./sat/sat config --list this gave me the following output:

Unknown distribution: ‘not found’
Please add your distribution to src/internal_config/distrib.pyconf

so I went to ./sat/src/internal_config/distrib.pyconfig and added the output of lsb_release -si which is Tuxedo so, I added to the file "Tuxedo" : "UB" but still after adding this I still get the same error (Unknown distributio…)
2. the second command also gives me the same error message

regards

If I sum up where we stand here:

  1. salome from UB22.04 archive is not working. The error message is “libcdt.so.5” not found
  2. we cannot use sat tool since TuxOS is not defined

As for 1) this is really strange that the shared library is not found since it is installed. Using ldd may help to see where salome is expecting to find the library

As for 2) maybe it’s worth trying to create a config file from scratch (I would avoid renaming Tuxedo as ubuntu). My guess is that in addition to lsb_release -si, sat is also using lsb_release -sr. lsb_release -sb does certainly not return 22.04 as release version

  1. salome from UB22.04 archive is not working. The error message is “libcdt.so.5” not found
  2. we cannot use sat tool since TuxOS is not defined
  1. yup exactly
  2. also the case. I tried to add it manually using "Tuxedo" : "UB" as it should be similar to ubuntu

As for 1) this is really strange that the shared library is not found since it is installed. Using ldd may help to see where salome is expecting to find the library

could you elavorate in how one would use ldd? is it form salome console? salome python console? the terminal directly?

As for 2) maybe it’s worth trying to create a config file from scratch (I would avoid renaming Tuxedo as ubuntu). My guess is that in addition to lsb_release -si, sat is also using lsb_release -sr. lsb_release -sb does certainly not return 22.04 as release version

actually lsb_release -sr is returning 22.04 for lsb_release -sb I am getting an error about the -b flag not existing

ldd is a unix tool to find shared libraries “attached” to an exec or library.
As an example, on my DB12 box:

ldd /opt/SALOME-9.12.0-DB12/INSTALL/YACS/lib/salome/lib*.so | grep libcdt

returns
libcdt.so.5 => /usr/lib/x86_64-linux-gnu/libcdt.so.5

so,
ldd SALOME-9.12.0/BINARIES-CO7/YACS/lib/salome/lib*.so |grep libcdt returns

   libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007efc7980b000)
   libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007f9fe273a000)
   libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007fe587b4d000)
   libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007f8ed57e0000)
   libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007f02e6897000)

and if I look in lib/x86_64-linux-gnu i can find the file
regards

should be:

not /lib/…

That’s why it fails.
This is with the universal binaries right?
If so, could you try the same with UB22.04 binaries?

well…if I do

cd /lib/x86_64-linux-gnu
ls | grep “libcdt”

i get

libcdt.so.5
libcdt.so.5.0.0

so it is there,no?

I was doing this tests in the UB22.04 binaries.

ok my bad /lib is a link to /usr/lib
Then I do not understand why running salome gives an error message complaining about not finding libcdt.so.5 …

Do you define LD_LIBRARY_PATH in your default env?

Do you define LD_LIBRARY_PATH in your default env?

no, LD_LIBRARY_PATH (if you mean in default env to when I open a terminal) if I run echo $LD_LIBRARY_PATH the ouput is empty

should I have it? and if yes, to what exactly?
EDIT:
now if I run ./salome or ./mesa_salome
in the ubuntu vr i get:

ERROR:salomeContext:Unexpected error:
Traceback (most recent call last):
File “/home/franco/Downloads/SALOME-9.12.0-native-UB22.04-SRC/BINARIES-UB22.04/SALOME/bin/salome/salomeContext.py”, line 299, in _startSalome
res = getattr(self, command)(options) # run appropriate method
File “/home/franco/Downloads/SALOME-9.12.0-native-UB22.04-SRC/BINARIES-UB22.04/SALOME/bin/salome/salomeContext.py”, line 386, in _sessionless
import setenv
File “/home/franco/Downloads/SALOME-9.12.0-native-UB22.04-SRC/BINARIES-UB22.04/KERNEL/bin/salome/setenv.py”, line 26, in
from launchConfigureParser import verbose
File “/home/franco/Downloads/SALOME-9.12.0-native-UB22.04-SRC/BINARIES-UB22.04/KERNEL/bin/salome/launchConfigureParser.py”, line 31, in
from salome_utils import verbose, getPortNumber, getHomeDir
File “/home/franco/Downloads/SALOME-9.12.0-native-UB22.04-SRC/BINARIES-UB22.04/KERNEL/bin/salome/salome_utils.py”, line 39, in
import psutil
ModuleNotFoundError: No module named ‘psutil’

apt install python3-psutil

Thanks for the answer,
I had also needed to install apt install python3-packaging
but now back to square one, I am getting SALOME_Session_Server_No_Server: error while loading shared libraries: libqwt-qt5.so.6: cannot open shared object file: No such file or directory
and if I do
apt-file search libqwt-qt5.so.6
I get

libqwt-qt5-6: /usr/lib/libqwt-qt5.so.6
libqwt-qt5-6: /usr/lib/libqwt-qt5.so.6.1
libqwt-qt5-6: /usr/lib/libqwt-qt5.so.6.1.4

regards
edit:
well in total some installation I needed:

sudo apt install python3-psutil
sudo apt-get install -y libqwt-qt5-6
sudo apt-get install -y libfreeimage-dev
sudo apt-get install libgdal-dev
sudo apt-get install libcminpack-dev

this make salome ubuntu “work” eventhought it looks “funny”
left salome ubutnu binaries right salome universal.

thanks a lot for your help! @Trophime

If you manage to make sat run, it will be easier to check your system for missing packages with:

./sat/sat config SALOME-9.12.0-native --check_system

where SALOME-9.12.0-native is the name of the config returned by sat config --list.