Skip to content

diod server: infinite loop #164

@dnalor

Description

@dnalor

both client and server run Gentoo Linux

build (diod 1.1.0, gcc 15):

CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native -mtune=native" ./configure --disable-auth --disable-config

run:

server (Linux odroidhc2 5.4.160-odroidxu4 SMP PREEMPT armv7l ARMv7 Processor rev 3 (v7l) SAMSUNG EXYNOS (Flattened Device Tree) GNU/Linux)

$ diod --listen=odroidhc2:9009 --no-auth --export=/usr/share -S -d 1

client (Linux hp-t630 6.12.58-gentoo SMP PREEMPT_DYNAMIC x86_64 AMD Embedded G-Series GX-420GI Radeon R7E AuthenticAMD GNU/Linux)

#  mount.diod -v odroidhc2:/usr/share -o version=9p2000.L,uname=luser,access=1002,port=9009,cache=loose,msize=1048576 /mnt/9p/
mount.diod: trying to connect to odroidhc2:9009
mount.diod: pre-authenticating connection to server
mount.diod: mount -t 9p odroidhc2:/usr/share /mnt/9p/ -oversion=9p2000.L,uname=luser,access=1002,cache=loose,msize=1048576,aname=/usr/share,trans=fd,debug=1,rwdepth=1,rfdno=3,wfdno=3
$  mount|grep 9p
odroidhc2:/usr/share on /mnt/9p type 9p (rw,relatime,debug=1,uname=luser,aname=/usr/share,cache=f,access=1002,msize=1048576,trans=fd,rfd=3,wfd=3)
$  ls /mnt/9p/ &> /tmp/9p.log
(client hangs until server killed)

server output:

Listening on odroidhc2:9009
Anyone can attach and access files as luser
No authentication is required
Tversion tag 65535 msize 1048576 version '9P2000.L'
Rversion tag 65535 msize 1048576 version '9P2000.L'
Tauth tag 0 afid 0 uname '' aname '/usr/share' n_uname 1002
Rlerror tag 0 ecode 2
Tattach tag 0 fid 0 afid -1 uname '' aname '/usr/share' n_uname 1002
Rattach tag 0 qid (0000000000020401 0 'd')
Tclunk tag 0 fid 0
Rclunk tag 0
Tversion tag 65535 msize 1048576 version '9P2000.L'
Rversion tag 65535 msize 1048576 version '9P2000.L'
Tattach tag 0 fid 0 afid -1 uname 'luser' aname '/usr/share' n_uname NONUNAME
Rattach tag 0 qid (0000000000020401 0 'd')
Tgetattr tag 0 fid 0 request_mask 0x17ff
Rgetattr tag 0 valid 0x17ff qid (0000000000020401 0 'd') mode 040755 uid 0 gid 0 nlink 89 rdev 0 size 4096 blksize 4096 blocks 8 atime Fri Mar 31 16:56:04 2023 mtime Thu Oct  9 22:06:52 2025 ctime Thu Oct  9 22:06:52 2025 btime X gen 0 data_version X
Twalk tag 0 fid 0 newfid 1 nwname 0
Rwalk tag 0 nwqid 0 
Tlopen tag 0 fid 1 flags 04000
Rlopen tag 0 qid (0000000000020401 0 'd') iounit 0
Treaddir tag 0 fid 1 offset 0 count 1048552
Rreaddir tag 0 count 2842
80000000 00010402 00000000 00b7d065 02000000 00040100 2e800000 00000816 
02000000 00002bb7 c5020000 00000403 00676974 80000000 00d02a02 00000000 
Treaddir tag 0 fid 1 offset 2147483647 count 1048552
Rreaddir tag 0 count 1281
80000000 00340b02 00000000 00d8b353 41000000 00040600 74616273 65748000 
0000006b 6f020000 00000008 185b4200 00000004 0c006163 6c6f6361 6c2d312e 
Treaddir tag 0 fid 1 offset 2147483647 count 1048552
Rreaddir tag 0 count 1281
80000000 00340b02 00000000 00d8b353 41000000 00040600 74616273 65748000 
0000006b 6f020000 00000008 185b4200 00000004 0c006163 6c6f6361 6c2d312e 
Treaddir tag 0 fid 1 offset 2147483647 count 1048552
Rreaddir tag 0 count 1281
80000000 00340b02 00000000 00d8b353 41000000 00040600 74616273 65748000 
0000006b 6f020000 00000008 185b4200 00000004 0c006163 6c6f6361 6c2d312e 
Treaddir tag 0 fid 1 offset 2147483647 count 1048552
Rreaddir tag 0 count 1281
80000000 00340b02 00000000 00d8b353 41000000 00040600 74616273 65748000 
0000006b 6f020000 00000008 185b4200 00000004 0c006163 6c6f6361 6c2d312e 
(last 4 lines repeat forever)

after killing the server, client output:

$  sort < /tmp/9p.log|uniq -c
      1 aclocal
      1 aclocal-1.16
   7171 aclocal-1.18
   7171 alsa
      1 applications
   7171 autoconf-2.72
   7171 automake-1.16
   7171 automake-1.16.5
      1 automake-1.18
   7171 automake-1.18.1
      1 awk
      1 baselayout
   7171 bash-completion
      1 binutils-data
      1 bison
      1 ca-certificates
      1 cmake
   7171 config.site
      1 config.site.d
   7171 consolefonts
   7171 consoletrans
   7171 crossdev
      1 dbus-1
      1 dejagnu
   7171 dhcpcd
   7171 dict
      1 doc
      1 dovecot
      1 elt-patches
   7171 emacs
      1 eselect
   7171 et
      1 ffmpeg
   7171 fish
      1 fonts
   7171 gcc-config
      1 gcc-data
   7171 gdb
      1 gettext
      1 gettext-0.23.2
      1 git
      1 git-core
      1 glib-2.0
   7171 gnuconfig
      1 groff
      1 gtk-doc
      1 i18n
      1 icons
   7171 icu
   7171 info
      1 iputils
      1 keymaps
   7171 libgpg-error
      1 libtool
   7171 locale
      1 ls: reading directory '/mnt/9p/': Connection reset by peer
   7171 man
      1 mc
      1 mikmod
      1 mime
      1 misc
   7171 nano
   7171 openpgp-keys
   7171 openrc
      1 pixmaps
      1 pkgconfig
      1 polkit-1
   7171 portage
   7171 push
   7171 re2c
   7171 sandbox
      1 sgml
   7171 shadowman
      1 sidplayfp
      1 smartmontools
   7171 sounds
   7171 ss
   7171 tabset
   7171 terminfo
      1 texi2any
   7171 texinfo
      1 timidity
      1 uade2
   7171 udhcpc
      1 unimaps
      1 vim
   7171 xml
      1 xmlto
      1 zoneinfo
   7171 zsh

Any suggestions would be welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions