ddd は X Window に接続できません。バグですか、それともローカル設定エラーですか?

ddd は X Window に接続できません。バグですか、それともローカル設定エラーですか?

ddd現在、X Windowに接続できず、中断する問題を分析しています。これはstraceの出力です。

connect(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, [20]) = 0
uname({sysname="Linux", nodename="terra-arch", ...}) = 0
access("/home/phil/.Xauthority", R_OK)  = 0
open("/home/phil/.Xauthority", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0600, st_size=55, ...}) = 0
read(5, "\1\0\0\nterra-arch\0\0010\0\22MIT-MAGIC-COO"..., 4096) = 55
read(5, "", 4096)                       = 0
close(5)                                = 0
getsockname(4, {sa_family=AF_LOCAL, NULL}, [2]) = 0
fcntl(4, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"...", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"...", 2}, {"...", 16}, {"...", 0}], 6) = 48
recvmsg(4, 0x7ffc641c6e80, 0)           = -1 EAGAIN (Resource temporarily unavailable)

recvmsg呼び出し前に "/tmp/.X11-unix/X0"ソケットと通信し、MIT-MAGIC-COOKIE-1writev呼び出しを介して送信します。その後、永久に繰り返されます(recvmsg呼び出しは失敗し続けます)。

それはしばらく前に動作し、ddd影響を受けるように見える唯一のアプリです。残念ながら私は慣れていないXWindowライセンス契約

私はアーチLinuxを使用しています。関連性があるかどうかはわかりませんが、xorg-serverは最近更新されました。

ls -alhgtr /var/cache/pacman/pkg/xorg-*
...
-rw-r--r-- 1 root  27K Mar 25 10:01 /var/cache/pacman/pkg/xorg-server-common-1.18.2-4-x86_64.pkg.tar.xz
-rw-r--r-- 1 root 1.3M Mar 25 10:01 /var/cache/pacman/pkg/xorg-server-1.18.2-4-x86_64.pkg.tar.xz
-rw-r--r-- 1 root 708K Mar 25 10:01 /var/cache/pacman/pkg/xorg-server-xvfb-1.18.2-4-x86_64.pkg.tar.xz
-rw-r--r-- 1 root  17K Apr  1 18:25 /var/cache/pacman/pkg/xorg-xinit-1.3.4-4-x86_64.pkg.tar.xz
-rw-r--r-- 1 root 732K Apr  5 19:36 /var/cache/pacman/pkg/xorg-server-xvfb-1.18.3-1-x86_64.pkg.tar.xz
-rw-r--r-- 1 root  27K Apr  5 19:36 /var/cache/pacman/pkg/xorg-server-common-1.18.3-1-x86_64.pkg.tar.xz
-rw-r--r-- 1 root 1.3M Apr  5 19:36 /var/cache/pacman/pkg/xorg-server-1.18.3-1-x86_64.pkg.tar.xz

/tmp/.X11-unix/X0存在し、ルートが所有します。

$ ls -l /tmp/.X11-unix
total 0
srwxrwxrwx 1 root root 0 Apr  5 21:22 X0

を実行すると動作sudo dddします。

バグレポートを書く必要があるのか​​、それともこれが私のローカルシステムのバグなのかわかりません。範囲を絞り込むのに役立ちますか?

ベストアンサー1

構成の問題であることがわかりました。新しい設定を使用する~/.dddためにディレクトリを移動することでddd問題が修正されました。

これは、rootとして実行され、汚れた設定がないため、sudoと連携する理由を説明します。

strace出力に関する私の解釈も間違っていることに言及する価値があります。recvmsg戻りループEAGAIN(「リソースを一時的に使用できません」)が表示されるのは通常の動作です。これは、アプリケーションがイベントに対してソケットをポーリングしていることを意味します。これがX11と通信する方法です。

おすすめ記事