Okular window won't show up if wvdial is running

2

I'm currently using Debian Testing (Stretch) with kernel 4.6.0-1-amd64 and Cinnamon Desktop 3.2. My preferred PDF reader is Okular, which is a KDE/Qt application.

Okular runs fine except when wvdial is running, in which case the process will be running when started but the window will not show up anywhere no matter how I start it (from the ALT-F2 launcher, from the Cinnamon menu, or the terminal). The process will be listed by task managers (HTOP, ps, and others), but the window simply won't appear. Statistically speaking, this happens 100% of the time.

Steps to reproduce:

  • Run wvdial as root to connect to the Internet via a USB cellular modem.
  • After the connection is established, run Okular.
  • No matter how many times you call it, the windows will never appear.
  • Terminate wvdial using CTRL-C.
  • Run Okular again. The window will appear.

Does anybody know what's going on here?

P.S: I need to use wvdial instead of Network Manager to easily choose between 3G and 4G networks with a simple configuration file and wrapper script. My provider applies different data caps for 3G and 4G networks independent of each other, so I need to be able to use either networks on-demand depending on my needs. I'll typically use the 3G network for Web browsing, and the 4G for large downloads, video conferencing, and updating/upgrading operating systems.

Edit: These are the last 3 lines from strace okular with wvdial running:

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 15
bind(15, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
connect(15, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, 16

Larssend

Posted 2017-02-04T04:06:15.280

Reputation: 2 941

That's very curious. Can you use strace to run Okular to see on what syscall it stops? Maybe that gives some hint of what's going on. – dirkt – 2017-02-04T10:37:38.737

@dirkt, I've added the last three lines of strace on okular with wvdial running in the background. – Larssend – 2017-02-05T02:52:46.987

Ok, so Okular wants to connect to the portmapper service (port 111) on localhost. Is rpcbind running when wvdial is active? Anything weird in state of localhost or routes to localhost when wvdial is active? – dirkt – 2017-02-05T06:11:03.940

@dirkt, I tried with and without rpcbind running; Okular window wouldn't show up in either case. My routing table is very standard: one entry for my Ethernet network, one entry for my wireless network, and a default route through ppp0 when wvdial is running. – Larssend – 2017-02-06T02:19:35.420

@dirkt, thanks so much for pointing me in the right direction. For some unknown reason, my loopback interface did not have an IP address. Anyhow, the problem in question hasn't shown itself again after I reassigned the correct IP address to said interface. – Larssend – 2017-02-06T03:16:39.350

Answers

1

Using strace to find out on what syscall Okular stops, it turned out it wanted to connect the portmapper service (port 111) on localhost. The loopback interface did not have an IP address, for whatever reason, and assigning an IP address to it solved the problem.

dirkt

Posted 2017-02-04T04:06:15.280

Reputation: 11 627