> -----Original Message----- > From: Marc Strapetz [mailto:marc.strap...@syntevo.com] > Sent: maandag 17 augustus 2015 08:58 > To: Philip Martin <philip.mar...@wandisco.com> > Cc: Branko Čibej <br...@wandisco.com>; dev@subversion.apache.org > Subject: Re: JavaHL, 1.9: "Bad file descriptor", "Stream doesn't support this > capability" errors > > On 14.08.2015 11:21, Philip Martin wrote: > > Marc Strapetz <marc.strap...@syntevo.com> writes: > > > >> It's reproducible with an empty repository on the server (just > >> initialized with svnadmin) and a local repository which has been > >> prepared for the initial import: > >> > >> C:\temp\svn> svn status -v > >> 0 0 ? . > >> A - ? ? dir > >> A - ? ? dir\subfile > >> A - ? ? file > >> > >> C:\temp\svn> svn commit -m "initial import" > >> svn: E140004: Commit failed (details follow): > >> svn: E140004: Stream doesn't support this capability > >> svn: E000009: Polling for available data on filestream failed: Bad > >> file descriptor > >> > >> On the server, we are running SVN 1.6.17. > > > > That's the apr_poll() call in data_available_handler_apr() failing, and > > E000009 could be EBADF. I suppose the file could have been closed, or > > the file descriptor could have been overwritten. What do you see in the > > debugger? > > Philip, is there any input you are expecting from my side? Because I > don't have an idea how I should debug this on the server side. > > Do you think the problem can be caused by the rather old version SVN > 1.6.17 on the server? Either way, there must have happened something in > the SVN 1.9 release as well, breaking this.
The problem is caused by apr not implementing file polling on Windows. [[ else if (aprset[i].desc_type == APR_POLL_FILE) { #if !APR_FILES_AS_SOCKETS return APR_EBADF; #else fd = aprset[i].desc.f->filedes; #endif } ]] Before Subversion 1.9 the code around the polling ignored errors and just checked for success. I'll see if I can properly fix this (preferably in both Subversion and Apr), without reverting to just ignoring errors. Bert