Commit graph

27921 commits

Author SHA1 Message Date
Joey Hess
a49d300545
async exception safety for external special remote processes
Since an external process can be in the middle of some operation when an
async exception is received, it has to be shut down then. Using
cleanupProcess will close its IO handles and send it a SIGTERM.

If a special remote choses to catch SIGTERM, it's fine for it to do some
cleanup then, but until it finishes, git-annex will be blocked waiting
for it. If a special remote blocked SIGTERM, it would cause a hang.
Mentioned in docs.

Also, in passing, fixed a FD leak, it was not closing the error handle
when shutting down the external. In practice that didn't matter before because
it was only run when git-annex was itself shutting down, but now that it
can run on exception, it would have been a problem.
2020-06-09 12:22:14 -04:00
yarikoptic
8e3cdfa90e Added a comment 2020-06-05 22:15:09 +00:00
yarikoptic
04aa8360a9 Added a comment: reply to Joey's comments 2020-06-05 22:11:48 +00:00
Joey Hess
0fd72ff8e0
Merge branch 'master' of ssh://git-annex.branchable.com 2020-06-05 15:49:01 -04:00
Joey Hess
0210e81d83
async exception safety for openFd
Audited for openFile and openFd, and this fixes all the ones I found
where an async exception could prevent the file getting closed.

Except for the lock pool, which is a whole other can of worms.
2020-06-05 15:48:00 -04:00
mario
38d98ce550 Added a comment: Get missing files in --hide-missing branch 2020-06-05 19:14:26 +00:00
Joey Hess
dca19099a9
async exception safety
Masking ensures that EndStderrHandler gets written, so the helper
threads shut down.

However, nothing currently guarantees that calls to closeP2PSshConnection
are async exception safe, so made a note about it.

At this point, I've audited all calls to async, and made them all async
exception safe, except for ones in the assistant, and a few in leaf
commands (remotedaemon, enable-tor, multicast, p2p) which don't need to
be.
2020-06-05 14:56:41 -04:00
Joey Hess
9703ef8ae1
update 2020-06-05 12:12:20 -04:00
Joey Hess
42756b972e
few more things 2020-06-05 11:15:29 -04:00
Joey Hess
db270bd6ba
Merge branch 'master' of ssh://git-annex.branchable.com 2020-06-05 11:13:15 -04:00
Joey Hess
2bff3b7c49
init: When annex.pidlock is set, skip lock probing. 2020-06-05 11:12:16 -04:00
Joey Hess
1d41ae5d2a
init warning on stalled lock probe
init: If lock probing stalls for a long time (eg a broken NFS server),
display a message to let the user know what's taking so long.
2020-06-05 11:06:19 -04:00
Ilya_Shlyakhter
1d189cd08e Added a comment 2020-06-05 14:51:08 +00:00
Joey Hess
e998e4a29a
Merge branch 'master' of ssh://git-annex.branchable.com 2020-06-05 10:41:30 -04:00
Ilya_Shlyakhter
5bec5ff8d8 Added a comment: correct standalone tarball for git-annex-8.20200522 2020-06-05 06:21:07 +00:00
yarikoptic
08bc7a6867 reporting on SQLite3 problem rendering pidlocked system unusable 2020-06-05 02:31:21 +00:00
yarikoptic
8d3ffe50a1 initial whining about long pidlock need detection time 2020-06-05 02:18:31 +00:00
git-annex@17927e6dc041ab425c14217a97a685adf3ecf44f
31b8d6b440 Added a comment: Actually they were not standard 2020-06-04 21:05:48 +00:00
git-annex@17927e6dc041ab425c14217a97a685adf3ecf44f
0f4abb039c Added a comment: Actually they were not standard 2020-06-04 21:05:30 +00:00
git-annex@17927e6dc041ab425c14217a97a685adf3ecf44f
369382e8cf Added a comment: content expression is standard 2020-06-04 20:28:01 +00:00
Joey Hess
a3d1f967a8
almost forgot 2020-06-04 16:22:45 -04:00
Joey Hess
67f4ed1f55
Merge branch 'master' of ssh://git-annex.branchable.com 2020-06-04 15:53:10 -04:00
Joey Hess
3bd2bbb54c
devblog 2020-06-04 15:52:53 -04:00
Joey Hess
2670890b17
convert to withCreateProcess for async exception safety
This handles all createProcessSuccess callers, and aside from process
pools, the complete conversion of all process running to async exception
safety should be complete now.

Also, was able to remove from Utility.Process the old API that I now
know was not a good idea. And proof it was bad: The code size went *down*,
despite there being a fair bit of boilerplate for some future API to
reduce.
2020-06-04 15:45:52 -04:00
Joey Hess
12e7d52c8b
another wrinkle 2020-06-04 14:46:28 -04:00
nicolas
3319855083 2020-06-04 13:17:39 +00:00
Joey Hess
e1fc4f7594
make safeCommand stop the process if the thread gets killed
And a comment on a todo item that this commit is perhaps the start of
solving.
2020-06-03 12:52:11 -04:00
Joey Hess
81a811d935
comment 2020-06-03 12:00:44 -04:00
Joey Hess
697ebba78f
Merge branch 'master' of ssh://git-annex.branchable.com 2020-06-03 11:40:24 -04:00
the13thletter
e3b487d41c Added a comment 2020-06-02 14:26:52 +00:00
Ilya_Shlyakhter
fa3a8e73cf removed 2020-06-01 16:36:34 +00:00
superhair123
10dcc6e27e 2020-06-01 13:48:04 +00:00
superhair123
4b0dd1fcb2 2020-06-01 13:47:30 +00:00
superhair123
1614e3e4cd 2020-06-01 13:46:52 +00:00
superhair123
401f0f7d5a 2020-06-01 13:44:15 +00:00
TroisSinges
ef04af6869 2020-06-01 07:36:47 +00:00
thk
8ac64700ec 2020-05-31 18:32:52 +00:00
thk
3ece3aafe6 2020-05-31 18:12:40 +00:00
branchable@bafd175a4b99afd6ed72501042e364ebd3e0c45e
32ef0206fb Added a comment 2020-05-31 11:03:05 +00:00
Joey Hess
2b52962ea2
commnet 2020-05-29 15:36:42 -04:00
Joey Hess
ed2d2ae256
Merge branch 'master' of ssh://git-annex.branchable.com 2020-05-29 13:09:01 -04:00
Joey Hess
0ba6144597
devblog 2020-05-29 13:08:38 -04:00
yarikoptic
e8dd62689b Added a comment 2020-05-28 23:53:58 +00:00
kyle
f5e300909f Added a comment 2020-05-28 20:41:48 +00:00
Joey Hess
0243c6b6c5
comment 2020-05-28 16:31:53 -04:00
Joey Hess
ba11fad102
Merge branch 'master' of ssh://git-annex.branchable.com 2020-05-28 15:56:07 -04:00
Joey Hess
89b2542d3c
annex.skipunknown with transition plan
Added annex.skipunknown git config, that can be set to false to change the
behavior of commands like `git annex get foo*`, to not skip over files/dirs
that are not checked into git and are explicitly listed in the command
line.

Significant complexity was needed to handle git-annex add, which uses some
git ls-files calls, but needs to not use --error-unmatch because of course
the files are not known to git.

annex.skipunknown is planned to change to default to false in a
git-annex release in early 2022. There's a todo for that.
2020-05-28 15:55:17 -04:00
kyle
8b280d4d8a Added a comment 2020-05-28 17:55:11 +00:00
Joey Hess
5b28a37ea1
titles 2020-05-28 13:21:56 -04:00
Joey Hess
5ffc864718
comment 2020-05-28 13:21:40 -04:00