Hi,

I hope this is the right place to post the discussion like this, as I
can confirm the test failed reason is not related to vim and it's quite
hard for me to track the issue alone. I think some discussion will be
helpful to solve the issue.

In the build log[0]:

```
>From test_channel.vim:
Found errors in Test_keep_pty_open():
Run 1, 13:51:24 - 13:51:24 in  0.020000 seconds:
command line..script 
/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/runtest.vim[617]..function 
RunTheTest[57]..Test_keep_pty_open line 6: Expected range 200 - 1000, but got 20
Run 2, 13:51:26 - 13:51:26 in  0.030000 seconds:
command line..script 
/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/runtest.vim[658]..function 
RunTheTest[57]..Test_keep_pty_open line 6: Expected range 200 - 1000, but got 30
Run 3, 13:51:30 - 13:51:30 in  0.030000 seconds:
command line..script 
/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/runtest.vim[658]..function 
RunTheTest[57]..Test_keep_pty_open line 6: Expected range 200 - 1000, but got 30
Flaky test failed too often, giving up
```

The test source code (in vim script):
```
func Test_keep_pty_open()
  CheckUnix

  let job = job_start(s:python . ' -c "import time;time.sleep(0.2)"',
        \ {'out_io': 'null', 'err_io': 'null', 'pty': 1})
  let elapsed = WaitFor({-> job_status(job) ==# 'dead'})
  call assert_inrange(200, 1000, elapsed)
  call job_stop(job)
endfunc
```

The `let job = job_start...` command in Debian Hurd can be represented using
the following command:

```
let job = job_start('python3' . ' -c "import time;time.sleep(0.2)"', {'out_io': 
'null', 'err_io': 'null', 'pty': 1})
```

When I run the vim command with running `vim --log vimlog`, I saw the
following log:

```
...
  5.790000 : Starting job: python3  -c  import time;time.sleep(0.2)
  5.800000 on 0: Created channel
  5.800000 on 0: using pty /dev/ttyp5 on fd 4
  5.800000 : SafeState: Start triggering
  5.800000 : raw terminal output: <messy stuff...>
  5.800000 : looking for messages on channels
  5.800000 on 0: Closing channel because all readable fds are closed
  5.800000 on 0: Closing channel
  5.800000 : SafeState: back to waiting, triggering SafeStateAgain
  5.800000 : closing logfile vimlog
  5.810000 : looking for messages on channels
  5.810000 on 0: Job ended
...
```

It's still the case with different sleep times. I believe the issue is
related to:

```
  5.800000 on 0: Closing channel because all readable fds are closed
  5.800000 on 0: Closing channel
```

but I have no idea where to go next.

[0]: 
https://buildd.debian.org/status/fetch.php?pkg=vim&arch=hurd-i386&ver=2%3A9.1.0967-2&stamp=1736521254&raw=0

Best,
Zhaoming


Reply via email to