Evinceは、Evinceが最初に起動された場合にのみPDFを安定して開くことができます。中断されたEvinceインスタンスのためにクリックすると、システムがハングすることがあります。

Evinceは、Evinceが最初に起動された場合にのみPDFを安定して開くことができます。中断されたEvinceインスタンスのためにクリックすると、システムがハングすることがあります。

マイコンピュータで(以下の詳細を参照)、Evinceは期待どおりにドキュメントを開いていませんが、これは使用された方法によって異なります。私が言及する2つの方法は次のとおりです。

  • (A)文書をターゲットにしてEvinceを起動します(文書をクリックしてOpen WithとEvinceを使用するなど)。またはevince <target doc>端末で実行);
  • (B)最初に文書なしでEvinceを起動し、次にEvinceウィンドウで[開く...]をクリックします。または開いているEvinceウィンドウの上部にドキュメントをドラッグします(これにより、新しいドキュメントを含む別のEvinceウィンドウが開きます)。

方法Aは機能しません(ほとんどの場合)。これはプロセスを中断し、pgrepこれはドックのアイコンを通して見ることができます。htopこれらのプロセスがCPUとメモリをほとんど使用しないことを示します。これらのプロセスを正常に終了できます。ただし、ドックでこれらのEvinceインスタンスのアイコンをクリックすると、システムはすぐに完全に停止します(オンにできませんtty)。回避策は、電源ボタンを介して強制的に再起動することです。

例外:方法Aが機能する場合があります。見つけました(通常はそうですが、おそらくいつもじゃない?今はよくわかりません)小さい(0.5MB)PDFに適しています。画像のみあり、テキストはありません。そうだと思った時々画像とテキストを含む中間サイズ(4 MB)のPDFも処理できます。この場合、PDFを表示するためのUIを含むウィンドウが表示され、PDFが表示されないことがあります。それ以外の場合は、プロセスが中断されるかPDFが正常に開きます。画像とテキストを含む大きなPDF(6MB)では機能しません。画像がなく、テキストのみを含む小さなPDF(0.2MB)では機能しません。また、小さい(0.2MB).psイメージを試しましたが、方法Aでは開くことができません。

方法Bは(ほとんど)うまく機能します。

例外:停止したプロセスがすでに実行されている場合、方法Bが機能しないことがあります。つまり、フリーズプロセスが実行されている場合は空のEvinceウィンドウを開くことができますが、「開く...」を使用するか、ドキュメントをウィンドウにドラッグすると、ドキュメントが開かれたり、開かなくなったりすることがあります。

マイコンピュータ:

  • Ubuntu 20.04.6、64ビット
  • 窓システム: Wayland
  • 64GiBメモリ
  • 第11世代Intelプロセッサ
  • 一部のオンボードグラフィックスカード: Mesa Intel XE (TGL GT2)
  • 2TB SSDスペース、いっぱい

また、これが常に問題になるわけではない点を付け加えたいと思います。私はEvinceを完璧に使用できました。しかし、過去のある時点からこの現象が現れ始め、何が変わったのかわからず、Evinceの使用を避けました。

さらなる診断:

strace中断されたEvinceプロセスで実行しようとしました。これが役に立つかもしれないという内容を読んだが、結果はまったく理解されていない。

strace: Process 12102 attached
restart_syscall(<... resuming interrupted read ...>) = 1
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\21\0\0\0\373\5\0\0\205\0\0\0\1\1o\0\30\0\0\0/org/a11"..., iov_len=2048}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 169
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
recvmsg(11, {msg_namelen=0}, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}], 3, 0) = 1 ([{fd=5, revents=POLLIN}])
read(5, "\3\0\0\0\0\0\0\0", 16)         = 8
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}], 3, -1) = 1 ([{fd=11, revents=POLLIN}])
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\21\0\0\0\375\5\0\0\205\0\0\0\1\1o\0\30\0\0\0/org/a11"..., iov_len=2048}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 169
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
recvmsg(11, {msg_namelen=0}, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}], 3, 0) = 1 ([{fd=5, revents=POLLIN}])
read(5, "\3\0\0\0\0\0\0\0", 16)         = 8
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}], 3, -1

数分待っていましたが、追加の出力は記録されませんでした。これを読むのが役に立つかもしれないので、これを実行しましたが、netstatまだ出力を理解していません。

$ netstat -p | grep 12102
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
unix  3      [ ]         STREAM     CONNECTED     150817   12102/evince         
unix  3      [ ]         STREAM     CONNECTED     149214   12102/evince         
unix  3      [ ]         STREAM     CONNECTED     149075   12102/evince         
unix  3      [ ]         STREAM     CONNECTED     149074   12102/evince         
unix  3      [ ]         STREAM     CONNECTED     149213   12102/evince         
unix  3      [ ]         STREAM     CONNECTED     151902   12102/evince

ls -l /proc/<proc id>/fd読んでみると役に立つと思い、また走ります。中断されたプロセス(12102)でプロセスを終了し、同じPDF(プロセス15795)でメソッドBを使用した後:

<me>@<my computre>:~$ ls -l /proc/12102/fd
total 0
lr-x------ 1 <me> <me> 64 Okt 11 18:37 0 -> /dev/null
lrwx------ 1 <me> <me> 64 Okt 11 18:37 1 -> 'socket:[149074]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 10 -> 'socket:[149214]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 11 -> 'socket:[151902]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 12 -> 'anon_inode:[eventfd]'
lr-x------ 1 <me> <me> 64 Okt 11 18:37 13 -> anon_inode:inotify
lr-x------ 1 <me> <me> 64 Okt 11 18:37 14 -> '/home/<me>/.local/share/gvfs-metadata/home (deleted)'
lr-x------ 1 <me> <me> 64 Okt 11 18:37 15 -> '/home/<me>/.local/share/gvfs-metadata/home-a9b0a1cb.log (deleted)'
lr-x------ 1 <me> <me> 64 Okt 11 18:37 16 -> /home/<me>/Downloads/<my document>.pdf
lrwx------ 1 <me> <me> 64 Okt 11 18:37 2 -> 'socket:[149075]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 3 -> 'socket:[149213]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 4 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 5 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 6 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 7 -> '/memfd:wayland-cursor (deleted)'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 8 -> 'socket:[150817]'
lrwx------ 1 <me> <me> 64 Okt 11 18:37 9 -> 'anon_inode:[eventfd]'
<me>@<my computer>:~$ ls -l /proc/15795/fd
total 0
lr-x------ 1 <me> <me> 64 Okt 11 18:58 0 -> /dev/null
lrwx------ 1 <me> <me> 64 Okt 11 18:58 1 -> 'socket:[174829]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 10 -> 'socket:[177581]'
lr-x------ 1 <me> <me> 64 Okt 11 18:58 102 -> '/home/<me>/.local/share/gvfs-metadata/root-5357d137.log (deleted)'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 11 -> 'socket:[174831]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 12 -> 'anon_inode:[eventfd]'
lr-x------ 1 <me> <me> 64 Okt 11 18:58 13 -> anon_inode:inotify
lr-x------ 1 <me> <me> 64 Okt 11 18:58 14 -> '/home/<me>/.local/share/gvfs-metadata/home (deleted)'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 15 -> '/memfd:wayland-cursor (deleted)'
lr-x------ 1 <me> <me> 64 Okt 11 18:58 16 -> '/home/<me>/.local/share/gvfs-metadata/home-41fe52fb.log (deleted)'
lr-x------ 1 <me> <me> 64 Okt 11 18:58 17 -> /home/<me>/Downloads/<my document>.pdf
lrwx------ 1 <me> <me> 64 Okt 11 18:58 2 -> 'socket:[174829]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 3 -> 'socket:[177580]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 4 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 5 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 6 -> 'socket:[179272]'
lr-x------ 1 <me> <me> 64 Okt 11 18:58 60 -> '/home/<me>/.local/share/gvfs-metadata/root (deleted)'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 7 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 8 -> 'anon_inode:[eventfd]'
lrwx------ 1 <me> <me> 64 Okt 11 18:58 9 -> '/memfd:wayland-cursor (deleted)'

後者のプロセスに2つの「waylandカーソル」行があることを除いて、これは私と同じようです。

この問題の診断方法について提案をいただきありがとうございます。私は通常PDFにOkularを使用していますが、Evinceは大きな画像を含むPDFに適していることを知り、これらのPDFをもっと見始めました。また、この問題は私を非常に混乱させ、解決したいと思います。

関連情報