guard / listen

The Listen gem listens to file modifications and notifies you about the changes.
https://rubygems.org/gems/listen
MIT License
1.93k stars 247 forks source link

Build tests failing on GNU Guix - Listen 3.7.1 #558

Closed tang0n closed 2 years ago

tang0n commented 2 years ago

I am trying to package listen 3.7.1 for GNU Guix but am not having much success getting the tests to pass.

I fear I have wandered outside of my realm of understanding here. The most recent packaged version (3.2.0) builds and installs fine. I'm getting the following:

E, [2022-06-17T20:16:41.518813 #31] ERROR -- : Exception rescued in listen-run_thread:
Errno::EBADF: Bad file descriptor - Failed to watch "/tmp/guix-build-ruby-listen-3.7.1.drv-0/source/spec/.fixtures/165549700048999522899/dir2/dir1": the given file descriptor is not valid.

I followed the /tmp directory while a second test was running and I can see the test is working within that directory with root permissions. So far as I can tell, there should be no issue with file creation/removal/renaming. Can someone provide some insight? I have attached the build log from Guix, which includes the stdout from the tests. listen-failed-tests.log

LouisaNikita commented 2 years ago

我已收到你的邮件,谢谢!  

tang0n commented 2 years ago

FYI Tests also fail with 3.7.0.

ColinDKelley commented 2 years ago

@tang0n Do the tests pass with earlier versions? Can you binary search down to what commit broke them?

FWIW, this feels like a race condition. Maybe another thread in the process rendered that file descriptor invalid somehow?

ColinDKelley commented 2 years ago

@tang0n Did you see my question above?

tang0n commented 2 years ago

Hey Colin, I had previous versions build OK. I am no longer attempting to build ruby gems for Guix. Like NPM packages, gems move too fast. I've fallen back to creating a gem home directly in my user space.

Thanks for responding.

ColinDKelley commented 2 years ago

Thanks, @tang0n.