FS#58319 - [sweethome3d] Doesn't start

Attached to Project: Community Packages
Opened by Robert Richter (archinoha) - Monday, 23 April 2018, 16:58 GMT
Last edited by Muflone (muflone) - Sunday, 28 April 2019, 11:17 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Muflone (muflone)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Start of sweethome3d under gnomeshell/wayland stopped after loading splash-screen.
I can it start with sudo with following error log:

Additional info:
* package version(s) : community/sweethome3d 5.7-1
* config and/or log files etc.
shell error log with 'sweethome3d &> error.log':

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by javax.media.j3d.JoglPipeline (file:/usr/lib/sweethome3d/java3d-1.6/j3dcore.jar) to method sun.awt.AppContext.getAppContext()
WARNING: Please consider reporting this to the maintainers of javax.media.j3d.JoglPipeline
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped
at com.jogamp.opengl.GLProfile.computeProfileMap(GLProfile.java:2071)
at com.jogamp.opengl.GLProfile.initProfilesForDeviceCritical(GLProfile.java:1924)
at com.jogamp.opengl.GLProfile.initProfilesForDevice(GLProfile.java:1875)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1843)
at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:230)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1021)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1050)
at com.jogamp.opengl.GLProfile.getMaxFixedFunc(GLProfile.java:803)
at javax.media.j3d.JoglPipeline.initialize(JoglPipeline.java:131)
at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:92)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:858)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:267)
at javax.media.j3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:317)
at java.desktop/java.awt.GraphicsDevice.getBestConfiguration(GraphicsDevice.java:205)
at com.eteks.sweethome3d.j3d.Component3DManager.<init>(Unknown Source)
at com.eteks.sweethome3d.j3d.Component3DManager.getInstance(Unknown Source)
at com.eteks.sweethome3d.SweetHome3D.addComponent3DRenderingErrorObserver(Unknown Source)
at com.eteks.sweethome3d.SweetHome3D.init(Unknown Source)
at com.eteks.sweethome3d.SweetHome3D.main(Unknown Source)

---

archlinux-java status:
Available Java environments:
java-10-openjdk (default)
java-8-openjdk
java-8-openjdk-jetbrains
java-9-openjdk



Steps to reproduce:
- install 'pacman -S sweethome3d'
- type to desktop search 'swe' under gnome-shell
- stoped at splash-screen
This task depends upon

Closed by  Muflone (muflone)
Sunday, 28 April 2019, 11:17 GMT
Reason for closing:  Not a bug
Additional comments about closing:  incompatible GPU drivers with java3d 1.6
Comment by Muflone (muflone) - Wednesday, 25 April 2018, 15:08 GMT
Hi

the issue seems related to the openjdk 10.

try to switch to java-8-openjdk with sudo archlinux-java set java-8-openjdk
Comment by Eli Schwartz (eschwartz) - Wednesday, 25 April 2018, 18:00 GMT
If that's the issue, then the fix is to declare a dependency on java-runtime < 10
Since it already depends on >=8 I'm not sure how that works if someone has jre7 and jre10 installed, but not jre8 or jre9...
Comment by Muflone (muflone) - Wednesday, 25 April 2018, 18:18 GMT
I cannot reproduce the defect from the OP, therefore I'm asking to check if it works with JRE 8.

I own two Arch Linux installations and SweetHome3D works fine for both with any issue, using OpenJDK JRE 8, 9 and 10 and Java3D 1.6.

If someone can track the source of the issue, I could try to fix it.
Comment by Robert Richter (archinoha) - Thursday, 26 April 2018, 14:17 GMT
Okay test it with:
java-8-openjdk
java3d 1.5.2-9
Could it be an amd gpu problem?
I used the GPU on the AMD A12-9800 APU. (IGPU VRAM on ASUS UEFI is set to automatic)

   log.txt (3.5 KiB)
Comment by Robert Richter (archinoha) - Thursday, 26 April 2018, 14:40 GMT
And the glxinfo output:
   glx.txt (65.8 KiB)
Comment by Cameron Eagans (cweagans) - Monday, 30 April 2018, 18:58 GMT
I'm seeing this issue on my installation as well. I'm running an nVidia GTX 1060 with the proprietary drivers (up to date as of 5 min ago). I tried with jre8-openjdk, jre9-openjdk, and jre10-openjdk.

I'm happy to help debug this in any way. If you'd like, we can even jump on a screenshare or something and debug in real time. I'm not knowledgeable enough on how the pieces fit together to be able to debug on my own though.
Comment by Robert Richter (archinoha) - Wednesday, 02 May 2018, 19:23 GMT
It's a problem with the GPU drivers and Java3D >1.5
I downloaded the original install archive (SweetHome3D-5.7-linux-x64.tgz) from sweethome3d.com.
It runs with the "SweetHome3D-Java3D-1_5_2" bash script, which used Java3D 1.5.2.

If anybody find the opposite:

Installed on /usr/bin/sweethome3d

##shell script

#!/bin/sh

APP_CLASSPATH=""
JAVA_EXEC=""
JAVA_OPTS="${JAVA_OPTS} -Xmx1024m"

if [ -n "${JAVA_HOME}" ]
then
if [ -x "${JAVA_HOME}/bin/java" ]
then
JAVA_EXEC="${JAVA_HOME}/bin/java"
fi
else
JAVA_EXEC="$(which java)"
fi

if [ -z "${JAVA_EXEC}" ]
then
echo "No 'java' executable can be found, please set JAVA_HOME variable or"
echo "use the 'archlinux-java' script to set the Java version."
exit 1
fi

# Build classpath
APP_CLASSPATH="SweetHome3D.jar:Furniture.jar:Textures.jar:Help.jar:iText-2.1.7.jar:freehep-vectorgraphics-svg-2.1.1b.jar:sunflow-0.07.3i.jar:jmf.jar:batik-svgpathparser-1.7.jar"
if [ "${SWEETHOME3D_JAVA3D}" = "1.5" ]
then
JAVA_OPTS="${JAVA_OPTS} -Djava.library.path=/usr/lib/sweethome3d/java3d-1.5"
APP_CLASSPATH="${APP_CLASSPATH}:/usr/lib/sweethome3d/java3d-1.5/j3dcore.jar:/usr/lib/sweethome3d/java3d-1.5/j3dutils.jar:/usr/lib/sweethome3d/java3d-1.5/vecmath.jar"
else
JAVA_OPTS="${JAVA_OPTS} -Djava.library.path=/usr/lib/sweethome3d/java3d-1.5 -Djogamp.gluegen.UseTempJarCache=false"
APP_CLASSPATH="${APP_CLASSPATH}:/usr/lib/sweethome3d/java3d-1.5/j3dcore.jar:/usr/lib/sweethome3d/java3d-1.6/j3dutils.jar:/usr/lib/sweethome3d/java3d-1.6/vecmath.jar:/usr/lib/sweethome3d/java3d-1.6/gluegen-rt.jar:/usr/lib/sweethome3d/java3d-1.6/jogl-java3d.jar"
fi
APP_CLASSPATH="${APP_CLASSPATH}:javaws.jar"

cd "/usr/share/java/sweethome3d"

exec "${JAVA_EXEC}" \
-classpath "${APP_CLASSPATH}" \
${JAVA_OPTS} \
-Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer \
com.eteks.sweethome3d.SweetHome3D \
-open "$1"

##tpircs llehs


And now the script in the downloaded file from the producer site (SweetHome3D-Java3D-1_5_2):

##shell script

#!/bin/sh

# Retrieve Sweet Home 3D directory
PROGRAM=`readlink "$0"`
if [ "$PROGRAM" = "" ]; then
PROGRAM=$0
fi
PROGRAM_DIR=`dirname "$PROGRAM"`

# Run Sweet Home 3D
exec "$PROGRAM_DIR"/jre8/bin/java -Xmx1024m -classpath "$PROGRAM_DIR"/lib/SweetHome3D.jar:"$PROGRAM_DIR"/lib/Furniture.jar:"$PROGRAM_DIR"/lib/Textures.jar:"$PROGRAM_DIR"/lib/Examples.jar:"$PROGRAM_DIR"/lib/Help.jar:"$PROGRAM_DIR"/lib/iText-2.1.7.jar:"$PROGRAM_DIR"/lib/freehep-vectorgraphics-svg-2.1.1b.jar:"$PROGRAM_DIR"/lib/sunflow-0.07.3i.jar:"$PROGRAM_DIR"/lib/jmf.jar:"$PROGRAM_DIR"/lib/batik-svgpathparser-1.7.jar:"$PROGRAM_DIR"/lib/j3dcore.jar:"$PROGRAM_DIR"/lib/j3dutils.jar:"$PROGRAM_DIR"/lib/vecmath.jar:"$PROGRAM_DIR"/jre8/lib/javaws.jar -Djava.library.path="$PROGRAM_DIR"/lib -Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer com.eteks.sweethome3d.SweetHome3D -open "$1"

##tpircs llehs
Comment by Muflone (muflone) - Saturday, 05 May 2018, 15:25 GMT
You can switch to Java3D 1.5 by using:
SWEETHOME3D_JAVA3D=1.5 sweethome3d

If this works you can set the variable globally by putting SWEETHOME3D_JAVA3D=1.5 in /etc/profile
Comment by Robert Richter (archinoha) - Sunday, 06 May 2018, 20:18 GMT
THX@all

@muflone:
The 1st in the bash console works fine.

But the 2nd option: I wrote it in /etc/profile, it starts, but without the 3D view.
Comment by loqs (loqs) - Sunday, 06 May 2018, 22:00 GMT
@archinoha are you using GDM as I recall it no longer sources /etc/profile
Comment by Robert Richter (archinoha) - Monday, 07 May 2018, 17:06 GMT
I tested it with lightdm too...idem

When I insert the SWEETHOME3D_JAVA3D="1.5" (with "") on the top in the /usr/bin/sweethome3d bash script, it runs successfully.
Comment by loqs (loqs) - Monday, 07 May 2018, 17:22 GMT
session-wrapper=/etc/lightdm/Xsession in /etc/lightdm/lightdm.conf
/etc/lightdm/Xsession contains
# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
if [ -f "$file" ]; then
echo "Loading profile from $file";
. "$file"
fi
done
It is surprising that would not source /etc/profile.

As another alternative you could use pam_env

Loading...