An update on the redirection issue:

I just  committed a change that  may address your issue.  I haven't been
able to reproduce the exact problem that you described (possibly because
I  don't have  the  redirect  setup exactly  like  you  did), but  while
investigating the code, I did find a problem which may be the cause.

Basically,  on a  redirect Fossil  did not  completely reinitialize  the
address to  which it was  connecting. For a  host where the  redirect is
simply to a new  URI on the same host, this is not  a problem, but for a
redirection service as  you have setup, I'm not sure  how it ever worked
because the address is going to be different for each redirect.

I managed to build Fossil with the patches that were submitted last week (version [522cf5f66d]).

Unfortunately, those changes don't prevent commits from crashing Fossil... (though, obviously, they may help solve part of the problem!)

Running a Fossil commit from gdb on my Windows 8.1 machine results in:

        Program received signal SIGSEGV, Segmentation fault.
        0x005159f9 in BIO_ctrl ()

Strangely enough, only a single frame is being reported in the backtrace...

        (gdb) bt
        #0  0x005159f9 in BIO_ctrl ()
        (gdb) down
        Bottom (innermost) frame selected; you cannot go down.
        (gdb) up
        Initial frame selected; you cannot go up.
        (gdb)

No other frames are available. Apparently, I'm not creating the debug build correctly? I must admit I'm also wholly unfamiliar with gdb...

As far as my debug build goes: I enabled the FOSSIL_ENABLE_SYMBOLS define in win/Makefile.mingw, performed a make clean (plus: make clean-zlib & make clean-openssl) and then simply ran make again. The executable size jumped from 3.5 Mb to nearly 6.5 Mb. So, that looked okay... What must I do to get a more comprehensive backtrace?

The good news is that it looks like we have a new clue as to what might be wrong. Our redirection service not only translates (fixed) member URLs to their varying IP addresses, but also switches from HTTP to HTTPS.

So, for the full auto-sync commit scenario something like this happens:

    1. pull from remote repository
      1a. fossil tries http://service/member/etc
1b. fossil picks up redirection and uses https://member-ip/etc { <= switching to HTTPS! }
    2. commit to local repository
    3. push to remote repository
      3a. fossil tries http://service/member/etc { <= back to HTTP }
3b. fossil picks up redirection and uses https://member-ip/etc { <= HTTPS, again }

I strongly suspect the crash happens during 3b, possibly because of lingering SSL issues from 1b.

This would also explain why Andy could not reproduce our exact problem. My apologies for not mentioning HTTPS earlier, I did not think it played a part during my initial post.

In any case, does this help track down the problem?

Ashwin.
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to