Re: [fossil-users] Bug Report: Failure to Recover when Previous Fossil Process got Killed

2017-07-11 Thread Richard Hipp
On 7/11/17, Martin Vahi  wrote:
>
> it would be nice, if the
> Fossil were able to recover from that kind of situations
> itself, automatically.

Fossil *does* recover from situations like this automatically

In this case, I don't think the prior fossil command was killed
unexpectedly.  Instead, I think the command is hung and is running in
the background.  If you were to kill off the hung instance of Fossil,
then the next fossil command would automatically recover the
repository to a sane state.

-- 
D. Richard Hipp
d...@sqlite.org
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Bug Report: Failure to Recover when Previous Fossil Process got Killed

2017-07-11 Thread Martin Vahi

I do not know the exact operation that I killed by
the key combination Ctrl-C, but the operation was probably
one of the following:

fossil addremove
or
fossil commit
or
fossil pull
or
fossil push

The result is a "corrupted" repository file with a
"locked SQLite" database file.

I have not lost any data, because I can make a
clean clone of the remote/server repository and re-insert
the new files to the clone, but it would be nice, if the
Fossil were able to recover from that kind of situations
itself, automatically. In my view killing a program
at an arbitrary moment, in this case, killing the Fossil client, and then
restarting the program should not disrupt the work flow of
the end user/human. The Fossil client should just continue from
where it left off without requiring any manual intervention from
the end user.

Slightly edited excerpts of the console session:

$ fossil version
This is fossil version 2.2 [81d7d3f43e] 2017-04-11 20:54:55 UTC
$ uname -a
Linux linux-0fiz 3.16.7-53-desktop #1 SMP PREEMPT Fri Dec 2 13:19:28 UTC
2016 (7b4a1f9) x86_64 x86_64 x86_64 GNU/Linux



$ fossil ui ./repository_storage.fossil
Listening for HTTP requests on TCP port 8080
[14674:14674:0711/113948:ERROR:sandbox_linux.cc(343)]
InitializeSandbox() called with multiple threads in process gpu-process.
[14641:14747:0711/113949:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: PRAGMA auto_vacuum
[14641:14747:0711/113949:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: PRAGMA journal_mode = TRUNCATE
[14641:14660:0711/113949:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: PRAGMA auto_vacuum
[14641:14660:0711/113949:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: PRAGMA journal_mode = TRUNCATE
[14641:14747:0711/113950:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: PRAGMA cache_size=1000
[14641:14747:0711/113950:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: SELECT name FROM sqlite_master
WHERE type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: PRAGMA cache_size=32
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: SELECT name FROM sqlite_master WHERE
type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: SELECT name FROM sqlite_master WHERE
type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: SELECT COUNT(*) FROM sqlite_master
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: SELECT name FROM sqlite_master WHERE
type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Web sqlite error 5,
errno 0: database is locked, sql: CREATE TABLE meta(key LONGVARCHAR NOT
NULL UNIQUE PRIMARY KEY, value LONGVARCHAR)
[14641:14660:0711/113950:ERROR:web_database_backend.cc(113)] Cannot
initialize the web database: 1
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: PRAGMA auto_vacuum
[14641:14660:0711/113950:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: PRAGMA journal_mode = TRUNCATE
[14641:14659:0711/113950:ERROR:data_store_impl.cc(129)] Failed to open
Data Reduction Proxy DB: 3
[14641:14747:0711/113950:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: SELECT name FROM sqlite_master
WHERE type=? AND name=? COLLATE NOCASE
[14641:14747:0711/113950:ERROR:connection.cc(1892)] History sqlite error
5, errno 0: database is locked, sql: CREATE TABLE meta(key LONGVARCHAR
NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR)
[14641:14660:0711/113951:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: PRAGMA cache_size=32
[14641:14660:0711/113951:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: SELECT name FROM
sqlite_master WHERE type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113951:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: SELECT name FROM
sqlite_master WHERE type=? AND name=? COLLATE NOCASE
[14641:14660:0711/113951:ERROR:connection.cc(1892)] Passwords sqlite
error 5, errno 0: database is locked, sql: CREATE TABLE meta(key
LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR)
[14641:14660:0711/113951:ERROR:login_database.cc(542)] Unable to create
the meta table.
[14641:14660:0711/113951:ERROR:password_store_default.cc(45)] Could not
create/open login database.
[14641:14660:0711/113951:ERROR:connection.cc(1892)] Shortcuts sqlite
error 5, errno 0: database is locked, sql: PRAGMA