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

/usr/bin/boomaga crashed on SIGSEGV when running from remote connected session #66

Open
fhanzlik opened this issue Dec 11, 2017 · 10 comments

Comments

@fhanzlik
Copy link

I run boomaga on Fedora 25/x86_64 LTSP server and it works fine when I start it from console or from 'ssh -X' remote connection. But boomaga crashed on SIGSEGV when I try run it from session initiated from diskless client.

Attached is gdb backtrace, strace output and boomaga cups backend status report printscreen as is after trying print to boomaga virtual printer.

boomaga-segfault.tar.gz

@fhanzlik
Copy link
Author

I forgot to mention - files attached in previous report are for boomaga-0.9.1. I also tried version 1.0.0, and it crashes as well

@SokoloffA
Copy link
Member

I try run it from session initiated from diskless client

Please explain how you run the program. Where the program is installed, and where the CUPS is running?
If the program and CUPS server running on different hosts, unfortunately this won't work.
How boomaga works:

  1. You print a document from your X-session, which is started from normal user.
  2. The CUPS server run boomaga backend (/usr/lib/cups/backend/boomaga). The backend gets the user name who sent the print job.
  3. The backend is looking for active X-session and D-Bus address for a user from step 2, and using D-Bus runs boobaga GUI program in the found X-Session.

If a user session running on another computer, backend will not be able to find it.

@fhanzlik
Copy link
Author

I roughly know how boomaga works, and IMO in this case things should work well.
User session, cups and boomaga are installed and run on terminalserver, thin client act only as X server for terminalserver applications.
In addition, it seems as boomaga GUI program (/usr/bin/boomaga) is able to run as stand-alone program, independently on cups backend - what is how i run it now, for simplicity. Not sure, when in this case program also does any works with D-Bus (maybe no) - but it crashes on SIGSEGV. No matter, when I run it without parameters or with existing PDF file name as parameter - what are cases, where boomaga GUI run right, when I run it from console or from remote connection (e.g. 'ssh -X terminalserver /usr/bin/boomaga my.pdf' works well).

Is there something else, what I could / should try?

@SokoloffA
Copy link
Member

Try to run

dbus-send --session --type=method_call --print-reply --dest=org.boomaga /boomaga org.boomaga.add string:'/home/sokoloff/myPrograms/boomaga/tests/01-pages.pdf' string:'title' boolean:false string:'options' uint32:1

Where /home/sokoloff/myPrograms/boomaga/tests/01-pages.pdf is full path to valid PDF file. You can download PDF files from https://github.com/Boomaga/rendertest

@fhanzlik
Copy link
Author

I just try it with Boomaga-1.0.0 and with following PDF files from https://github.com/Boomaga/rendertest/: 01-pages.pdf, 02-pages.pdf, Urpmi.pdf, issue_60.pdf.
Result:

  1. On terminals from console MATE session and 'ssh -X' connection 'dbus-send' command correctly start /usr/bin/boomaga (FYI: files 01-pages.pdf and 02-pages.pdf are reported as damaged, see attached screenshot. Other two files are displayed correctly).
  2. on terminal from remote diskless station session 'dbus-send' ends with message
    "Error org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying"
    , and in terminalserver audit log is message "type=ANOM_ABEND msg=audit(1513181391.611:11997): auid=1014 uid=1014 gid=1014 ses=8 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=17547 comm="boomaga" exe="/usr/bin/boomaga" sig=11 res=1"

From this it seems, IMO, that CUPS backend and d-bus are all right, and problem is somewhere in boomaga GUI binary.

@fhanzlik
Copy link
Author

forgotten attachment:
boomaga_w_01-pages pdf

@fhanzlik
Copy link
Author

fhanzlik commented Dec 13, 2017

Still a vague memory; I do not know if it could be somehow related to this problem: when I install this terminalserver (sometime in February), there was problem with some MATE desktop component (mate-panel? now I do not know), which crashed on thin client session, but was working on terminalserver console. I think, at the time it was problem in Mesa os some OpenGL library, where was called non-existent procedure. Problem was solved (IMO) by installing nVidia proprietary graphics drivers, where was this procedure defined (although terminalserver and thin client did not have nVidia graphics card).

@SokoloffA
Copy link
Member

What is the easiest way to run a LTSP server and client in the Virtualbox?

@fhanzlik
Copy link
Author

Hi Alexander, my LTSP implementation is far from optimal. The original idea of the LTSP5 project was that system booted on diskless stations would be installed from the same packages as the LTSP server (at LTSP server was at some point - e.g. /opt/ltsp/i386/ - via chroot installed system, which was then used on diskless stations via NFS or NBD as their root FS).
But as LTSP was disclaimed in Fedora 15+ (maybe also because ingoing systemd crap was not able work on NFS root filesystem), my implementation is a bit clumsy - on LTSP server is installed Fedora 25, but the diskless stations are still booting/using the original old Fedora 14 system (with six years old xorg-x11-server-Xorg-1.9.5).
For this reason, it is also possible that although everything else works seamlessly, boomaga requires some newer SW on the client side - X server. When I have a little spare time, I'll try to simulate access from a disk-based station to a newer distribution. Or if you can advise what I could/should try more, I'd love to go into it.

PS: not sure, when Boomaga GUI is considered to run also standalone, without its cups backend - it seems as yes; I can run it, in File -> Open dialog open some file and then view/print it. But in this case, however, I encountered a problem - when Boomaga GUI finds the ~/.cache/boomaga.env file (from previous cups backend run?), then use it - which IMO is not good because the values in it may not be up to date. Specifically, cases where the value of the DISPLAY variable has changed are fatal ;)

@SokoloffA
Copy link
Member

I think you're right. The problem may be related to the variable DISPLAY in the boomaga.env file. Try to run a new version from master branch. I made some fixies. Now I don't save DISPLAY and DBUS_SESSION_BUS_ADDRESS variables to a file.

I also added 2 scripts for testing.

  1. scripts/testDBUS.sh - launches boomaga via D-Bus, it's not created and not updated the boomaga.env file, so you can play with values in the boomaga.env file.

  2. scripts/testBackend.sh - launches boomagabackend, looks an active X session and launches boomaga. Create the boomaga.env file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants