[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: JavaHL, 1.9: "Bad file descriptor", "Stream doesn't support this capability" errors

From: Bert Huijben <bert_at_qqmail.nl>
Date: Mon, 17 Aug 2015 10:56:48 +0200

> -----Original Message-----
> From: Marc Strapetz [mailto:marc.strapetz_at_syntevo.com]
> Sent: maandag 17 augustus 2015 08:58
> To: Philip Martin <philip.martin_at_wandisco.com>
> Cc: Branko Čibej <brane_at_wandisco.com>; dev_at_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.strapetz_at_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
Received on 2015-08-17 10:57:14 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.