> -----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


Reply via email to