Discussion:
Can't push or autosync
(too old to reply)
Sean Woods
2014-08-01 02:47:23 UTC
Permalink
Hello!

I have a remote machine with Fossil on it. Fossil version [8d758d3715]
2012-10-22 12:48:04 - which is really old, I know, but it works fine and
that machine is on a Linux 2.6 kernel still (!) CGI enabled, etc. I
have being doing fossil commit for months and it always autosyncs with
the server. After an autosync happens I usually check the web site to
make sure everything transferred okay.

Recently it just stopped auto syncing. I do `fossil push` and it still
doesn't work.

I recall this happened sometime in the past and I just did a fresh
checkout, but I need to get my changes back to the "roost" so to speak.

I recompiled off the latest trunk and that didn't help.

I did a `fossil rebuild` and that didn't help.

Any thoughts?
Sean Woods
2014-08-01 02:49:19 UTC
Permalink
Post by Sean Woods
I recompiled off the latest trunk and that didn't help.
Clarification: server is on ancient 2012 version, client is on latest
trunk just compiled. When I commit on the client, it doesn't push to
the server, even `fossil remote-url` says that's where it should go for
remotes.

Sorry; "I am le tired"
Andy Bradford
2014-08-01 15:52:06 UTC
Permalink
Recently it just stopped auto syncing. I do `fossil push` and it still
doesn't work.
Can you provide some sample output for a commit that doesn't sync? Also,
what about:

fossil settings autosync
fossil settings dont-push

Also, since you mentioned push is failing, you could also do:

fossil --httptrace push

This will generate a series of HTTP request/response text files in your
current directory. They might have some interesting data in them.

Thanks,

Andy
--
TAI64 timestamp: 4000000053dbb7c8
Sean Woods
2014-08-01 17:26:34 UTC
Permalink
Post by Andy Bradford
Recently it just stopped auto syncing. I do `fossil push` and it still
doesn't work.
Can you provide some sample output for a commit that doesn't sync? Also,
fossil settings autosync
fossil settings dont-push
fossil --httptrace push
This will generate a series of HTTP request/response text files in your
current directory. They might have some interesting data in them.
I executed the commands but am unsure about how to interpret the output. Does it look OK?

***@sachem:~/code/pr$ fossil settings autosync
autosync (local) 1
***@sachem:~/code/pr$ fossil settings dont-push
dont-push




Request:

POST /pr.fossil.cgi/xfer/xfer HTTP/1.0
Host: code.seanwoods.com
User-Agent: Fossil/1.30 (2014-07-31 21:13:24 [e0199bfc43])
Content-Type: application/x-fossil-debug
Content-Length: 1375

login swoods 5321c52aa4419bb15449a61fd8c9b5e20060a62d 74d4b0e18160fe2fbaca338717325cda25502377
push ac45ca13555b013a9ca55832a7fcfb9278195aba 8cc0c6c4c9c2c2bb99247d69a198d3587f65fbcf
igot 0287f09da88e80d4dcc2275c143bdf017259b59c
igot 2fa7686f0ba912365a194da7dca8582738ad5d68
igot 300e30653a25ae4ae2dfddb0ef911c8e129f8423
igot 3c85691f16fad704efdfae0ec263a30e082822a2
igot 419e1928f4414709145b2a93ee8f77040a807ba8
igot 681b4c98cec7881a7246e4cb426cac99e37a4889
igot 6b92b03cb4e7fffacff2040476e9f407f4c22eb0
igot 6e390bc80f4bbcb8ebc8032274373e8556d8fca4
igot 71054ec768b463b6fae458725d2ff704b859b1c6
igot 81699661b3d07acc891ce85f3e1f6aa54703bf2c
igot 871b95b33848ae037b31db6093b01110d1c0b726
igot 9a6be08060ccbb88c6aeabcd70dcf753bf56317c
igot aa1b8c8b2fd228a74f0444cc62db905c2f3de189
igot aad113c0670c9e98095ce3e21054f10ce0a0e407
igot b14e480354f8f5c5de487641bdcc28e86c9f9810
igot bd75ee27c1c664cee99bda7811228a0549a786fa
igot c8f341f6c830bcdcef40f4e33c1f752bdefb3f0f
igot ca4978af2e619944e6715b16977c4ebcd07e46fd
igot ceb189abbdf69a56168d87a0e4f2e637cf480ddd
igot d20c1a4f34dcc8c1c7debafe357e30a47a283597
igot d96b079619096360956708d6877bb4832b9b356a
igot e076fc2b23df714a454a91a76fe7e46fa79d970c
igot e60a73365a84ab06de8b310bbb8eb62790c30ada
igot ec388ad57e8fe0d59d1297cc098373c595f4c6df
igot ee1dfbd80e9aaf435d9f296dd610286a13eee1fb
# 08BFE8FEC1E4CEA4520E0024E74CFEB6E4578A19


Response:

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 01 Aug 2014 17:22:41 GMT
Content-Type: application/x-fossil-debug; charset=utf-8
Content-Length: 32
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-control: no-cache

# timestamp 2014-08-01T17:22:41
Andy Bradford
2014-08-01 18:13:43 UTC
Permalink
Post by Sean Woods
Host: code.seanwoods.com
push ac45ca13555b013a9ca55832a7fcfb9278195aba 8cc0c6c4c9c2c2bb99247d69a198d3587f65fbcf
igot 0287f09da88e80d4dcc2275c143bdf017259b59c
[more igot cards removed]
Are any of the artifact UUIDs in the above igots (including those elided
from the list) missing on the server to which this Push was directed
(code.seanwoods.com)? If not, which ones are missing on the server after
you committed your code?

There was a long-standing server-side sync bug that was recently fixed
wherein the server would not offer up certain artifacts to clients. But
your situation is the reverse (at least as far as you have described
it). You have a server that has refused to send gimme cards to request
artifacts that are missing when the client is trying to push. Maybe the
problem is the same root cause.

Thanks,

Andy
--
TAI64 timestamp: 4000000053dbd8f9
Sean Woods
2014-08-01 19:14:42 UTC
Permalink
Post by Andy Bradford
Post by Sean Woods
Host: code.seanwoods.com
push ac45ca13555b013a9ca55832a7fcfb9278195aba 8cc0c6c4c9c2c2bb99247d69a198d3587f65fbcf
igot 0287f09da88e80d4dcc2275c143bdf017259b59c
[more igot cards removed]
Are any of the artifact UUIDs in the above igots (including those elided
from the list) missing on the server to which this Push was directed
(code.seanwoods.com)? If not, which ones are missing on the server after
you committed your code?
I checked 5-10 and they are all there. Should I check all of them?
Andy Bradford
2014-08-01 19:24:06 UTC
Permalink
I checked 5-10 and they are all there. Should I check all of them?
Perhaps not. It might be better to focus on what we can know. Do you
know the UUID of the artifacts which are in your local client that you
expect to be on the remote server but are not there? If so, what are
they and are they in the list of igots previously mentioned?

Can you hit the remote server's web interface (or are you using SSH?)
and just see if it shows up:

http://code.seanwoods.com/info/missinguuid

Do you have any kind of clock skew between the server and the client?

Andy
--
TAI64 timestamp: 4000000053dbe977
Richard Hipp
2014-08-01 17:44:49 UTC
Permalink
Post by Sean Woods
Hello!
I have a remote machine with Fossil on it. Fossil version [8d758d3715]
2012-10-22 12:48:04 - which is really old, I know, but it works fine and
that machine is on a Linux 2.6 kernel still (!) CGI enabled, etc. I
have being doing fossil commit for months and it always autosyncs with
the server. After an autosync happens I usually check the web site to
make sure everything transferred okay.
Recently it just stopped auto syncing. I do `fossil push` and it still
doesn't work.
Have you tried running: fossil sync --verily
Post by Sean Woods
I recall this happened sometime in the past and I just did a fresh
checkout, but I need to get my changes back to the "roost" so to speak.
I recompiled off the latest trunk and that didn't help.
I did a `fossil rebuild` and that didn't help.
Any thoughts?
_______________________________________________
fossil-users mailing list
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
--
D. Richard Hipp
***@sqlite.org
Sean Woods
2014-08-01 18:17:22 UTC
Permalink
Post by Richard Hipp
Have you tried running: fossil sync --verily
I have not. I tried invoking that command but looks like it needs an argument to the repository (vs. the cloned checkout).

I forget where I put it! I usually put that in ~/fossils but it's not there. Is there a way I can tell, looking at the checkout, where the repository actually is (the local one, that is)?

Once I find that I'll invoke the command and send output.

Thanks!
Andy Bradford
2014-08-01 18:54:21 UTC
Permalink
I forget where I put it! I usually put that in ~/fossils but it's not
there. Is there a way I can tell, looking at the checkout, where the
repository actually is (the local one, that is)?
If you are in an open repository you can just do:

fossil status
fossil info

But if you are in the open repository you can also just do the sync.

You could also do:

fossil all info

Andy
--
TAI64 timestamp: 4000000053dbe27e
Sean Woods
2014-08-01 19:08:39 UTC
Permalink
Post by Richard Hipp
Have you tried running: fossil sync --verily
This didn't help. Still doesn't appear in the timeline.

***@sachem:~/code$ fossil sync -R pr.fossil --verily
Sync with http://***@code.seanwoods.com/pr.fossil.cgi
Round-trips: 1 Artifacts sent: 0 received: 0
Sync finished with 6045 bytes sent, 874 bytes received
Richard Hipp
2014-08-01 19:13:36 UTC
Permalink
Post by Sean Woods
Post by Richard Hipp
Have you tried running: fossil sync --verily
This didn't help. Still doesn't appear in the timeline.
And what does "fossil remote" show you? Is it the correct URL?

What is the output when you run "fossil sync"? Are you getting an error
message? How much is being transferred?

Have you run "fossil test-integrity"?
--
D. Richard Hipp
***@sqlite.org
Sean Woods
2014-08-01 19:16:09 UTC
Permalink
Post by Sean Woods
Post by Richard Hipp
Have you tried running: fossil sync --verily
This didn't help. Still doesn't appear in the timeline.
And what does "fossil remote" show you? Is it the correct URL?
Yes.
Post by Sean Woods
What is the output when you run "fossil sync"? Are you getting an error message? How much is being transferred?
***@sachem:~/code/pr$ fossil sync
Sync with http://***@code.seanwoods.com/pr.fossil.cgi
Round-trips: 1 Artifacts sent: 0 received: 0
Sync finished with 992 bytes sent, 874 bytes received
Post by Sean Woods
Have you run "fossil test-integrity"?
No, but:

***@sachem:~/code/pr$ fossil test-integrity
227 non-phantom blobs (out of 227 total) checked: 0 errors
Andy Bradford
2014-08-01 22:31:11 UTC
Permalink
Does the artifact actually exist if you take the UUID of the missing
artifact and ask /info about it via the server URL?

Something like:

http://***@code.seanwoods.com/pr.fossil.cgi/info/UUID

Where UUID is the UUID of the missing artifact.

Thanks,

Andy
--
TAI64 timestamp: 4000000053dc1551
Sean Woods
2014-08-01 23:04:47 UTC
Permalink
Post by Andy Bradford
Does the artifact actually exist if you take the UUID of the missing
artifact and ask /info about it via the server URL?
Where UUID is the UUID of the missing artifact.
Indeed. That is the way I validated it before sending my previous
email.

Additionally I checked a few of the artifacts on my local against the
server and they exist.

Note that when I view via the Web UI it says "control artifact" beneath
the SHA hash.

So it seems I a missing some kind of "manifest" artifact that describes
which "files" go into which "checkin." I realize these terms have
special meaning within Fossil, thus the quotes.
Andy Bradford
2014-08-02 04:48:20 UTC
Permalink
So it seems I a missing some kind of "manifest" artifact that
describes which "files" go into which "checkin." I realize these terms
have special meaning within Fossil, thus the quotes.
A manifest indeed does contain details about a checkin[1]. So the UUID
that you see in the local repository but not he remote repository is a
UUID of a checkin? If so, it will look something like this:

http://www.fossil-scm.org/index.html/info/36c4551e7cda231c0b5fe99600afc75c10eba2c7

Not that the title of the page says Check-in [36c4551e7c].

Is this what is missing from the remote server? What is it's specific
UUID in your repository?

What's odd is that if it is indeed missing from the server, --verily
should have caused it to sync.

Can you rerun fossil with:

fossil sync --verily --httptrace

Then let's see if the missing artifact (or its UUID) is in the push
during the sync by inspecting all the http response reply files that get
generated.

[1]. http://www.fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki#manifest

Andy
--
TAI64 timestamp: 4000000053dc6db7
Sean Woods
2014-08-02 16:19:13 UTC
Permalink
Post by Andy Bradford
A manifest indeed does contain details about a checkin[1]. So the UUID
that you see in the local repository but not he remote repository is a
http://www.fossil-scm.org/index.html/info/36c4551e7cda231c0b5fe99600afc75c10eba2c7
Not that the title of the page says Check-in [36c4551e7c].
Is this what is missing from the remote server? What is it's specific
UUID in your repository?
What's odd is that if it is indeed missing from the server, --verily
should have caused it to sync.
fossil sync --verily --httptrace
Then let's see if the missing artifact (or its UUID) is in the push
during the sync by inspecting all the http response reply files that get
generated.
The missing artifacts are present on the server, but fossil appears to
be interpreting them incorrectly.

1. Run `fossil ui` on client and open Timeline page in web browser.
2. Find the most recent checkin, dated 2014-08-01, and click on it. You
get a /info URL.
3. Copy SHA hash to clipboard 681b4c98cec7881a7246e4cb426cac99e37a4889
4. On remote system, paste the SHA hash into the equivalent /info URL
and hit enter.
5. On the local machine, you get a nicely formatted summary of the
checkin. "Normal"
expected behavior.
6. On the remote machine, you get the "raw" version of the check-in. A
series of
space-delimeted lines. The first piece in each line is a single
letter. Before the
dump of the internal data, you see the words "control artifact"

It appears that this is the result of the initial autosync attempt. I
tested that by making another local commit. Looks fine in fossil UI,
but I get the internal "control format" in the remote repo.

It's very bizzare. Do you think I should just install a new version of
Fossil on the server? That would seem to be the most pragmatic thing to
do, but I wanted to give the devs an opportunity to chime in.

Not to hijack the thread but when I try to run ./configure on the latest
Fossil trunk I get:

glob.tcl:13: Error: Permission denied

I'm on a shared host (Webfaction) but should have permission to compile
anything in my home dir. That appears to be an autosetup related
permission issue (it did build jimsh on first run).
Richard Hipp
2014-08-02 17:07:44 UTC
Permalink
Post by Sean Woods
The missing artifacts are present on the server, but fossil appears to
be interpreting them incorrectly.
Can you share the text of the missing artifact with us? That might be
instructive.
--
D. Richard Hipp
***@sqlite.org
Sean Woods
2014-08-02 17:18:02 UTC
Permalink
Can you share the text of the missing artifact with us?  That might be instructive.
Here you go. This is the textual representation. It shows up in the
Web UI as if it were source code -- like it appears in a gray box with
dashed lines.

I can browse to other SHAs for files I changed and the changes are
there.

This (below) is a checking manifest, right? My guess is that when the
fossil UI view logic sees a SHA that corresponds to a checkin, it does
some formatting to make the data human palatable, add links and other
interactivity, etc.

It's like some finalization process doesn't occur during the sync that
enables this intelligent view to be triggered. But that's just a guess
and I don't want to be confusing.

C Updated\sheader\sdefinitions
D 2014-08-02T16:07:10.043
F FinalizeTimeDtl.sql 300e30653a25ae4ae2dfddb0ef911c8e129f8423
F analysis/Tips\svs\s200163\s2012\s12\s29.xls
57331e75e73bbff81179a8f7812592f33541b6ac
F batch-noc d72825cdfbe0138c4e7e599fb383ab561ed9e571 x
F cafehrsearned.sql 88e12ec22f02023d915e52ce404f0d5b44db8e61
F cash.sql 9fbdfda51c45f5b554027f9faf84c97351d48a61
F cash_200164.sql 25b3f065e82fec3c6ca7c6ea5fad35c927eb15c9
F castnum.sql f56de4022267566c83dab66a8a55031cd6dd2862
F convert-file a8623141f4896d0f24adf2f5e02f64b8e916296a x
F cp-intersect fef5253c9d8aff1bab3b06b2063c52a086dd095b x
F customemail.py da56d882900bdd8fa1cf74aa894450e8e1428b7f x
F daily aa1b8c8b2fd228a74f0444cc62db905c2f3de189 x
F database.py e60a73365a84ab06de8b310bbb8eb62790c30ada
F dayofweek.sql c9b632030a485b512da1f67c428c626d5575e3c1
F dbcsv.py ceb189abbdf69a56168d87a0e4f2e637cf480ddd
F dcr.sql d70a5e62be607aaa125ff2b858503990535418ec
F dcrlite.sql d56329eaf21d20781ea65c61f60a06c0d8b0eb18
F deposit.sql 337b804c7dcb26323225c6394746f2157eff421d
F discounts.sql b9fe84dc0c9a8aee0dead307ef75ed7f7520d6b2
F explode.py 2fa7686f0ba912365a194da7dca8582738ad5d68 x
F fetch-files 644b9fde333b6fff457e1cd44d2bcb802b25ae69 x
F filelib.py 9f9a68e9baa9cfbc754c07aeda6c0fe20c9509d7 x
F files.py 6e390bc80f4bbcb8ebc8032274373e8556d8fca4
F headers/current.csv 1d93760012110e681fbb9327c21cc6b13d726370
F headers/items.csv fa0aea28dce717d2d8b7b12204bb6fca1fa85508
F headers/pr_schema-2012-12-12.csv
cbe2e783b6733c52ad0c10ce9d740f71558346e2
F headers/pr_schema-2014-06-12.csv
871b95b33848ae037b31db6093b01110d1c0b726
F headers/pr_schema-2014-07-23.csv
d96b079619096360956708d6877bb4832b9b356a x
F headers/pr_schema_???.csv 5ec9a158fc6f89c2d70cdcefff05a84a60d3f45b
F idb-init e9d8c7130e1f53d2283b74ed7d0efc7d17ad9f7d x
F import-files 094b21235bd6a66205f2399b5317b0b93443fd7a x
F items.sql 405fc4d8d1dee7b6237ff935f76e51e8e5e897fd
F log.py 71054ec768b463b6fae458725d2ff704b859b1c6
F mail2 d41ac1d2a679ba107935c8272f7abd5215cd27f6 x
F net_sales_from_200164 773e9fc4087d4bd066b6bc2e6539a86b8c65fd9f
F noc bd7b8c1dc8889f5791e6844078d937247ed8df25 x
F num_unproceesed.sql 81699661b3d07acc891ce85f3e1f6aa54703bf2c
F onacct.sql de85c00de6baa0c6d5760ce122c9a44637d1162d
F overtime.sql 4075dd8ff2d7b0ac32b9f86ef458c75d5f3bd484
F paidout.sql eadc040300bc959639a457b567ede86287da2a24
F read-headers 73780a3a91ad4dcb7dc4068c7314c74295f13b98 x
F reinitdb 90142dc8d16c2f640b90a3f6c211899d965dce61 x
F report-job cb439aa0589beff462a29ac745403805d81cc01e x
F reports/exp.sql fb87ce51127d8b415c468c006ad578e3204397d6
F reports/exp2.sql ee96d9f7e98685d1093ae05ae1d6c7a72c66d653
F reports/exp3.sql bfdea47fae443db94178d9a4155741c51e0829ed
F reports/tips a0d6c7b5d4319ddea26c6cdc45d7fc78c0f704ab x
F reports/tips.sql 6014ff3b4fce27360839fadff155981baced7171
F retaildlrs.sql 9c4961d139a2ee43291d382400d423fe6e75dccf
F schema.sql a0cacb50c1176b5b17ae74b62924ff0bee377773
F sendone d0cfec72cd5592596b9d5a1fabd1c0795ec5459d x
F show_schema.sql 0287f09da88e80d4dcc2275c143bdf017259b59c
F start-web-server 2c1f84a3c5c709a419f179a5dd1b61f80edc3e29 x
F stores.sql 3365e8ce10442c089ef2f3507da6552636c36c26
F test.sql 6d3414535acffa86a568923dbfb0772836e1d7e7
F timedtl.sql 138bec157938faa18e55b5f9142f5c2154a66d75
F timedtl2.sql 4985a244421539fdc2dcda46d0e4ea0c6dddbf4c
F tips.sql 4de6482f9b9f7eff8d8e9356e883b25d8b318583
F web/development.ini.sample ff51935a04421ec9b11124a3916333853c05818c
F web/templates/index.html 75192087a4a4998d5feff30b8622ede12e1bec86
F web/website.py c73716f1ea50d22403449d68d1fc488856d454ea x
F zcollections.py 050648463e167d66a54272da454a29b881b9478a
P 681b4c98cec7881a7246e4cb426cac99e37a4889
R 4df8f713ba285140957002ecd6875e80
U swoods
Z 2fe7c3e37ce37c6ed5653d596ada6c53
Richard Hipp
2014-08-02 17:33:24 UTC
Permalink
Post by Richard Hipp
Post by Richard Hipp
Can you share the text of the missing artifact with us? That might be
instructive.
Here you go. This is the textual representation.
[...]
Post by Richard Hipp
F headers/pr_schema_???.csv 5ec9a158fc6f89c2d70cdcefff05a84a60d3f45b
Support for filenames that contain the "?" character was added on
2012-11-30 (see http://www.fossil-scm.org/fossil/info/647bb7b79f for the
change). Since your Fossil server is earlier than this, it won't be able
to interpret files that contain "?" characters and so it won't see this
check-in.

Update to any Fossil version after 2012-11-30 and it should just start
working.
--
D. Richard Hipp
***@sqlite.org
Sean Woods
2014-08-02 17:46:25 UTC
Permalink
Support for filenames that contain the "?" character was added on 2012-11-30 (see http://www.fossil-scm.org/fossil/info/647bb7b79f for the change).  Since your Fossil server is earlier than this, it won't be able to interpret files that contain "?" characters and so it won't see this check-in.
Update to any Fossil version after 2012-11-30 and it should just start working.
OK, I'll do that. Thank you.

Any insight into why I get the glob.tcl error when I try ./configure?

***@web75:Fossil-e0199bfc43$ ./configure
glob.tcl:13: Error: Permission denied
Richard Hipp
2014-08-02 17:47:52 UTC
Permalink
Post by Sean Woods
Any insight into why I get the glob.tcl error when I try ./configure?
No. Did you start with a clean checkout? No prior "configure" results
sitting around?
--
D. Richard Hipp
***@sqlite.org
Sean Woods
2014-08-02 17:52:16 UTC
Permalink
No.  Did you start with a clean checkout?  No prior "configure" results sitting around?
Yes I did. After receiving your message, I re-extracted it from the tar
archive and tried configure again. No luck. See below.


***@web75:tmp$ rm -r Fossil-e0199bfc43
***@web75:tmp$ tar -xzvf
Fossil-e0199bfc43.tar.gz\?uuid\=e0199bfc4339226e8e6170a19c48f820089f3d61
Fossil-e0199bfc43
Fossil-e0199bfc43/manifest
Fossil-e0199bfc43/manifest.uuid
Fossil-e0199bfc43/.fossil-settings
Fossil-e0199bfc43/.fossil-settings/clean-glob
Fossil-e0199bfc43/.fossil-settings/encoding-glob
Fossil-e0199bfc43/.fossil-settings/ignore-glob
Fossil-e0199bfc43/.fossil-settings/keep-glob
Fossil-e0199bfc43/.project
Fossil-e0199bfc43/.settings

[ >% snip >% ]

Fossil-e0199bfc43/www/webui.wiki
Fossil-e0199bfc43/www/wikitheory.wiki
***@web75:tmp$ cd Fossil-e0199bfc43
***@web75:Fossil-e0199bfc43$ ls
ajax auto.def BUILD.txt configure debian
Makefile.in manifest.uuid src tools win
art autosetup compat COPYRIGHT-BSD2.txt Makefile.classic
manifest setup test VERSION www
***@web75:Fossil-e0199bfc43$ ./configure
No installed jimsh or tclsh, building local bootstrap jimsh0
glob.tcl:13: Error: Permission denied

Continue reading on narkive:
Loading...