Post by RichPost by John ForkoshYeah, I have three other boxes with the identical slackware
installed, and also can't reproduce the problem on any other box.
Something-or-other must have gotten corrupted/messed-up/whatever,
probably by something I did on this box, but I have no idea what
that might be. And that's what I'm trying to identify (and fix).
You don't know what you did, yet somehow you expect us, with even less
knowledge of you and your system, to magically identify what you did
and tell you how to undo it?
Like I asked in original post, "...Anybody have any similar experience,
or any suggestion about identifying/fixing the problem?" And I also
mentioned that I'd first googled, hoping to find similar experiences
for which an explanation and solution had already been found.
Post by RichPost by John ForkoshPost by Jimmy JohnsonStart okular as user from the console and tell us what errors you
get when you get the errors. Also you can try and open pdf using
xpdf it's also installed.
I usually do start okular from a /usr/bin/konsole terminal window.
No errors at all. The okular window just freezes/hangs after a few
pages of scrolling through any pdf (large or small). And the
terminal window shows no messages. Zilch. Nada.
Try it again, and this time, when it freezes, open another terminal
window, find the PID of the okular process, and strace it, and see what
comes out of strace.
strace -p PID
Replace PID with the process id of the frozen okular.
I started strace immediately after opening okular, before
it froze, as strace -p PID 2> strace.out in order to see
all the activity leading up to the freeze. I won't bother
you with the first ~10K lines while I was scrolling...
(line 1) strace: Process 4693 attached
(line 2) restart_syscall(<... resuming interrupted poll ...>) = 0
skipping to line 9838 (and wrapping long line)...
stat("/etc/cups/ppd/HL5050.ppd", {st_mode=S_IFREG|0640,
st_size=10023, ...}) = 0
access("/etc/cups/ppd/HL5050.ppd", R_OK) = 0
symlink("/etc/cups/ppd/HL5050.ppd", "/tmp/5e3cde315309c") = 0
openat(AT_FDCWD, "/tmp/5e3cde315309c", O_RDONLY) = 120
fcntl(120, F_GETFD) = 0
fcntl(120, F_SETFD, FD_CLOEXEC) = 0
read(120, "*PPD-Adobe: \"4.3\"\n*%============"..., 4096) = 4096
read(120, "ype BOND/Bond Paper:\n*BrMediaTyp"..., 4096) = 4096
read(120, "Antique: Standard \"(001.005)\" St"..., 4096) = 1831
read(120, "", 4096) = 0
close(120) = 0
unlink("/tmp/5e3cde315309c") = 0
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 EAFNOSUPPORT
(Address family not supported by protocol)
socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 120
setsockopt(120, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(120, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
setsockopt(120, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl(120, F_SETFD, FD_CLOEXEC) = 0
fcntl(120, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(120, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(120, {sa_family=AF_INET, sin_port=htons(631),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1
EINPROGRESS (Operation now in progress)
fcntl(120, F_SETFL, O_RDWR) = 0
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
... etc ...
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = 0 (Timeout)
poll([{fd=120, events=POLLIN|POLLOUT}], 1, 250) = ?
ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=2268, si_uid=1000} ---
+++ killed by SIGTERM +++
So, that "connect(120,..." had been preceded by 119,118,...,25.
And okular had done some "fstat(24,...", 23,etc near the start of the log.
And the 119,118,... connect's were all reading the same ppd file for
my cups default printer. A full sequence for the last successful
one is...
stat("/etc/cups/ppd/HL5050.ppd", {st_mode=S_IFREG|0640,
st_size=10023, ...}) = 0
access("/etc/cups/ppd/HL5050.ppd", R_OK) = 0
symlink("/etc/cups/ppd/HL5050.ppd", "/tmp/5e3cde3152c58") = 0
openat(AT_FDCWD, "/tmp/5e3cde3152c58", O_RDONLY) = 119
fcntl(119, F_GETFD) = 0
fcntl(119, F_SETFD, FD_CLOEXEC) = 0
read(119, "*PPD-Adobe: \"4.3\"\n*%============"..., 4096) = 4096
read(119, "ype BOND/Bond Paper:\n*BrMediaTyp"..., 4096) = 4096
read(119, "Antique: Standard \"(001.005)\" St"..., 4096) = 1831
read(119, "", 4096) = 0
close(119) = 0
unlink("/tmp/5e3cde3152c58") = 0
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) = -1
EAFNOSUPPORT (Address family not
supported by protocol)
socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 119
setsockopt(119, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(119, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
setsockopt(119, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl(119, F_SETFD, FD_CLOEXEC) = 0
fcntl(119, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(119, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(119, {sa_family=AF_INET, sin_port=htons(631),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1
EINPROGRESS (Operation now in progress)
fcntl(119, F_SETFL, O_RDWR) = 0
poll([{fd=119, events=POLLIN|POLLOUT}], 1, 250) = 1
([{fd=119, revents=POLLOUT}])
after which the very next line is the stat(... for "120",
stat("/etc/cups/ppd/HL5050.ppd", {st_mode=S_IFREG|0640,
st_size=10023, ...}) = 0
access("/etc/cups/ppd/HL5050.ppd", R_OK) = 0
etc, etc (i.e., same lines as shown for "120" earlier)
.
So, apparaently, the "poll([{fd=120,..." just kept repeating forever.
No idea why, and no idea why it was reading/re-reading/re-re...
that ppd file. I never asked it to print or print-preview anything.
Also, just in case the ppd file was flaky, I went into cups and
changed the default printer, and then re-ran okular. And that strace
showed it was obediently reading/re-reading a different ppd file.
But the end result was identical.
--
John Forkosh ( mailto: ***@f.com where j=john and f=forkosh )