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