Joey Hess [Wed, 30 Oct 2024 12:13:49 +0000 (08:13 -0400)]
Merge branch 'master' into p2pv4
Joey Hess [Wed, 30 Oct 2024 12:13:33 +0000 (08:13 -0400)]
break out todo item
Joey Hess [Tue, 29 Oct 2024 20:14:10 +0000 (16:14 -0400)]
add tip for DATA-PRESENT feature
Joey Hess [Tue, 29 Oct 2024 19:07:30 +0000 (15:07 -0400)]
document DATA-PRESENT in CHANGELOG
I wonder where else this could be documented? It's kind of a niche
feature, since it needs at least a partial custom implementation of the p2p
protocol or the p2phttp protocol. But it can save a lot of bandwidth and
avoid the proxy needing disk space to buffer files uploaded to a special
remote.
Joey Hess [Tue, 29 Oct 2024 18:53:06 +0000 (14:53 -0400)]
support DATA-PRESENT when proxtying for special remotes
There is a TODO left in the code for exporttree special remotes. If
possible, it should check if one of the export locations contains the
content of the key.
Joey Hess [Tue, 29 Oct 2024 18:20:07 +0000 (14:20 -0400)]
support DATA-PRESENT in the p2p protocol proxy
But not yet when proxying to special remotes.
When proxying for a cluster, the client can store the object on any node
or nodes of the cluster, and send DATA-PRESENT. That gets proxied to each
node, and if any of them agree that they have the data, the proxy will
respond with SUCCESS or SUCCESS-PLUS.
I think it's ok to not check for the proxied remotes supporting protocol
version 4. When there are multiple remotes in a cluster, it behaves as
described above, and if they all respond with ERROR, the result will be
FAILURE. And when not proxying for a cluster, the proxy negotiates the
p2p protocol to be the same version or lower than the proxied remote,
which will prevent sending DATA-PRESENT when it's too old.
Joey Hess [Tue, 29 Oct 2024 17:13:28 +0000 (13:13 -0400)]
implement put data-present parameter in http servant
Changed the protocol docs because servant parses "true" and "false" for
booleans in query parameters, not "1" and "0".
clientPut with datapresent=True is not used by git-annex, and I don't
anticipate it being used in git-annex, except for testing.
I've tested this by making clientPut be called with datapresent=True and
git-annex copy to a remote succeeds once the object file is first
manually copied to the remote. That would be a good test for the test
suite, but running the http client means exposing it to at least
localhost, and would fail if a real http client was already running on
that port.
Joey Hess [Tue, 29 Oct 2024 17:12:12 +0000 (13:12 -0400)]
implement DATA-PRESENT in p2p protocol
Not yet implemented for the http server or the proxy.
Joey Hess [Tue, 29 Oct 2024 16:13:05 +0000 (12:13 -0400)]
update http servant for p2p protocol version 4
This is all just adding the v4 routes and boilerplate. At this point v4
is implemented the same as v3.
Joey Hess [Mon, 28 Oct 2024 18:16:15 +0000 (14:16 -0400)]
p2p protocol version 4 for DATA-PRESENT
Joey Hess [Mon, 28 Oct 2024 17:49:58 +0000 (13:49 -0400)]
formatting
Joey Hess [Mon, 28 Oct 2024 17:46:57 +0000 (13:46 -0400)]
update
Joey Hess [Mon, 28 Oct 2024 17:29:33 +0000 (13:29 -0400)]
simplified design for indirect uploads
Joey Hess [Mon, 28 Oct 2024 16:20:10 +0000 (12:20 -0400)]
fix reversion in getting from unchunked encrypted special remotes
Have to use the object file for the encrypted key, not the unencrypted
key.
Bug introduced in
835283b86240ef4b68c44f4332ac1b644e08e49f
Joey Hess [Mon, 28 Oct 2024 16:01:23 +0000 (12:01 -0400)]
bisected
Joey Hess [Mon, 28 Oct 2024 15:30:09 +0000 (11:30 -0400)]
reproduced
yarikoptic [Thu, 24 Oct 2024 14:00:14 +0000 (14:00 +0000)]
initial report on fresh FTBFS on debian
Joey Hess [Tue, 22 Oct 2024 17:54:54 +0000 (13:54 -0400)]
comment
Joey Hess [Tue, 22 Oct 2024 17:36:31 +0000 (13:36 -0400)]
comment
Joey Hess [Tue, 22 Oct 2024 17:27:25 +0000 (13:27 -0400)]
remove warnings about tuning being experimental
Joey Hess [Tue, 22 Oct 2024 17:25:46 +0000 (13:25 -0400)]
followup and close
Joey Hess [Tue, 22 Oct 2024 17:19:04 +0000 (13:19 -0400)]
close old xmpp bug
Joey Hess [Tue, 22 Oct 2024 17:04:37 +0000 (13:04 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 22 Oct 2024 15:37:36 +0000 (11:37 -0400)]
pondering
Joey Hess [Tue, 22 Oct 2024 15:12:12 +0000 (11:12 -0400)]
add missing space
Joey Hess [Tue, 22 Oct 2024 15:09:47 +0000 (11:09 -0400)]
planning
matrss [Tue, 22 Oct 2024 14:44:10 +0000 (14:44 +0000)]
Added a comment
matrss [Tue, 22 Oct 2024 14:13:53 +0000 (14:13 +0000)]
Added a comment: Re: rclone remote config in special remote
Joey Hess [Tue, 22 Oct 2024 13:49:28 +0000 (09:49 -0400)]
Merge branch 'master' into streamproxy
Joey Hess [Mon, 21 Oct 2024 23:25:42 +0000 (19:25 -0400)]
response
Joey Hess [Mon, 21 Oct 2024 20:04:47 +0000 (16:04 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 20:03:29 +0000 (16:03 -0400)]
adjust: Allow any order of options when combining --hide-missing with options like --unlock.
optparse-applicative made this hard, the naive implementation this had
before didn't let --hide-missing come after --unlock. And just adding
additional <|> with --hide-missing coming after --unlock didn't work
either. So need to get some options and then combine them.
Joey Hess [Mon, 21 Oct 2024 19:42:01 +0000 (15:42 -0400)]
better name for LinkPresentAdjustment
Joey Hess [Mon, 21 Oct 2024 19:07:19 +0000 (15:07 -0400)]
comment
Joey Hess [Mon, 21 Oct 2024 19:03:55 +0000 (15:03 -0400)]
response
matrss [Mon, 21 Oct 2024 16:32:18 +0000 (16:32 +0000)]
Added a comment
Joey Hess [Mon, 21 Oct 2024 16:08:56 +0000 (12:08 -0400)]
comment
Joey Hess [Mon, 21 Oct 2024 15:39:27 +0000 (11:39 -0400)]
comment
Joey Hess [Mon, 21 Oct 2024 15:33:07 +0000 (11:33 -0400)]
remove stack-lts-18.13.yaml
windows autobuilder fixed to use stack.yaml
Joey Hess [Mon, 21 Oct 2024 15:32:02 +0000 (11:32 -0400)]
comment
Joey Hess [Mon, 21 Oct 2024 15:24:50 +0000 (11:24 -0400)]
comment
Joey Hess [Mon, 21 Oct 2024 14:41:51 +0000 (10:41 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 14:40:51 +0000 (10:40 -0400)]
response
Joey Hess [Mon, 21 Oct 2024 14:03:32 +0000 (10:03 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 14:02:12 +0000 (10:02 -0400)]
p2phttp: Allow unauthenticated users to lock content by default
* p2phttp: Allow unauthenticated users to lock content by default.
* p2phttp: Added --unauth-nolocking option to prevent unauthenticated
users from locking content.
The rationalle for this is that locking is not really a write operation, so
makes sense to allow in a repository that only allows read-only access. Not
supporting locking in that situation will prevent the user from dropping
content from a special remote they control in cases where the other copy of
the content is on the p2phttp server.
Also, when p2phttp is configured to also allow authenticated access,
lockcontent was resulting in a password prompt for users who had no way to
authenticate. And there is no good way to distinguish between the two types
of users client side.
--unauth-nolocking anticipates that this might be abused, and seems better
than disabling unauthenticated access entirely if a server is being
attacked. It may be that rate limiting locking by IP address or similar
would be an effective measure in such a situation. Or just limiting the
number of locks by anonymous users that can be live at any one time. Since
the impact of such an DOS attempt is limited to preventing dropping content
from the server, it seems not a very appealing target anyway.
Joey Hess [Sat, 19 Oct 2024 21:53:28 +0000 (17:53 -0400)]
comment
Joey Hess [Sat, 19 Oct 2024 21:13:26 +0000 (17:13 -0400)]
tag
Joey Hess [Sat, 19 Oct 2024 21:12:23 +0000 (17:12 -0400)]
add GITMANIFEST to parseKeyVariety
git-remote-annex: Fix bug that prevented using it with external special
remotes, leading to protocol error messages involving "GITMANIFEST".
Joey Hess [Sat, 19 Oct 2024 20:43:35 +0000 (16:43 -0400)]
comment
yarikoptic [Fri, 18 Oct 2024 20:31:21 +0000 (20:31 +0000)]
Added a comment
matrss [Fri, 18 Oct 2024 16:56:46 +0000 (16:56 +0000)]
Added a comment
Joey Hess [Fri, 18 Oct 2024 16:04:48 +0000 (12:04 -0400)]
comments
Joey Hess [Fri, 18 Oct 2024 15:05:41 +0000 (11:05 -0400)]
clarification on 403
Joey Hess [Fri, 18 Oct 2024 14:28:49 +0000 (10:28 -0400)]
comment
Joey Hess [Fri, 18 Oct 2024 14:18:59 +0000 (10:18 -0400)]
Merge branch 'master' into streamproxy
Joey Hess [Fri, 18 Oct 2024 14:17:07 +0000 (10:17 -0400)]
fix build on windows
Utility.OpenFile is posix only
yarikoptic [Fri, 18 Oct 2024 13:10:38 +0000 (13:10 +0000)]
Added a comment
yarikoptic [Fri, 18 Oct 2024 13:04:49 +0000 (13:04 +0000)]
report on windows FTBFS
yarikoptic [Fri, 18 Oct 2024 13:01:25 +0000 (13:01 +0000)]
Added a comment
Joey Hess [Fri, 18 Oct 2024 00:56:31 +0000 (20:56 -0400)]
comment
Joey Hess [Fri, 18 Oct 2024 00:55:31 +0000 (20:55 -0400)]
Allow enabling the servant build flag with older versions of stm
Allowing building with ghc 9.0.2 (debian stable).
Updated patch covering all uses of writeTMVar.
yarikoptic [Thu, 17 Oct 2024 22:08:32 +0000 (22:08 +0000)]
removed
yarikoptic [Thu, 17 Oct 2024 21:44:50 +0000 (21:44 +0000)]
Added a comment
yarikoptic [Thu, 17 Oct 2024 21:44:17 +0000 (21:44 +0000)]
Added a comment
yarikoptic [Thu, 17 Oct 2024 21:44:04 +0000 (21:44 +0000)]
Added a comment
mih [Thu, 17 Oct 2024 20:26:08 +0000 (20:26 +0000)]
Tag with project ID
yarikoptic [Thu, 17 Oct 2024 18:37:57 +0000 (18:37 +0000)]
Added a comment
Joey Hess [Thu, 17 Oct 2024 18:05:20 +0000 (14:05 -0400)]
comment
Joey Hess [Thu, 17 Oct 2024 17:44:38 +0000 (13:44 -0400)]
Allow enabling the servant build flag with older versions of stm
Allowing building with ghc 9.0.2 (debian stable).
yarikoptic [Thu, 17 Oct 2024 17:04:07 +0000 (17:04 +0000)]
Added a comment
Joey Hess [Thu, 17 Oct 2024 15:10:28 +0000 (11:10 -0400)]
p2phttp combining unauth and auth options
p2phttp: Support serving unauthenticated users while requesting
authentication for operations that need it. Eg, --unauth-readonly can be
combined with --authenv.
Drop locking currently needs authentication so it will prompt for that.
That still needs to be addressed somehow.
Joey Hess [Thu, 17 Oct 2024 14:10:26 +0000 (10:10 -0400)]
response
Joey Hess [Thu, 17 Oct 2024 14:06:25 +0000 (10:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 17 Oct 2024 14:06:08 +0000 (10:06 -0400)]
add IMN7 to projects and tag a relevant issue
Joey Hess [Thu, 17 Oct 2024 14:01:31 +0000 (10:01 -0400)]
comment
yarikoptic [Thu, 17 Oct 2024 13:57:43 +0000 (13:57 +0000)]
question about Servant
matrss [Thu, 17 Oct 2024 09:39:56 +0000 (09:39 +0000)]
matrss [Thu, 17 Oct 2024 09:18:04 +0000 (09:18 +0000)]
Make VURL a proper list item
yarikoptic [Wed, 16 Oct 2024 19:13:08 +0000 (19:13 +0000)]
initial report on divergence in behavior on ACL
yarikoptic [Wed, 16 Oct 2024 18:58:04 +0000 (18:58 +0000)]
Added a comment
yarikoptic [Wed, 16 Oct 2024 18:51:45 +0000 (18:51 +0000)]
make freeze/thaw relative paths
yarikoptic [Wed, 16 Oct 2024 18:34:06 +0000 (18:34 +0000)]
initial report on freeze/thaw exit code ignorance
matrss [Wed, 16 Oct 2024 12:09:02 +0000 (12:09 +0000)]
Added a comment
Joey Hess [Tue, 15 Oct 2024 20:02:19 +0000 (16:02 -0400)]
streaming uploads
Joey Hess [Tue, 15 Oct 2024 19:35:09 +0000 (15:35 -0400)]
added retrieveKeyFileInOrder and ORDERED to external special remote protocol
I anticipate lots of external special remote programs will neglect
implementing this. Still, it's the right thing to do to assume that some
of them may write files out of order. Probably most external special
remotes will not be used with a proxy. When someone is using one with a
proxy, they can always get it fixed to send ORDERED.
Joey Hess [Tue, 15 Oct 2024 18:38:20 +0000 (14:38 -0400)]
smaller delay in proxy streamer
A one second delay made it seem really choppy and slow when the special
remote was sending content fairly steadily but was bottlenecked on
running gpg on 10 mb chunks.
This does not appreciably increase CPU, although of course if the
special remote is very slow it will add up over time.
It would perhaps be better to use inotify, like tailVerify does.
Joey Hess [Tue, 15 Oct 2024 18:29:06 +0000 (14:29 -0400)]
stream through proxy when using fileRetriever
The problem was that when the proxy requests a key be retrieved to its
own temp file, fileRetriever was retriving it to the key's temp
location, and then moving it at the end, which broke streaming.
So, plumb through the path where the key is being retrieved to.
Joey Hess [Tue, 15 Oct 2024 18:28:47 +0000 (14:28 -0400)]
fix logic error
yarikoptic [Tue, 15 Oct 2024 18:15:16 +0000 (18:15 +0000)]
initial report on not all files being saved
Joey Hess [Tue, 15 Oct 2024 17:30:52 +0000 (13:30 -0400)]
remove change that was accidentially committed
Joey Hess [Tue, 15 Oct 2024 17:27:27 +0000 (13:27 -0400)]
comment
Joey Hess [Tue, 15 Oct 2024 16:27:01 +0000 (12:27 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 15 Oct 2024 16:26:53 +0000 (12:26 -0400)]
working in streamproxy branch
Joey Hess [Tue, 15 Oct 2024 16:22:34 +0000 (12:22 -0400)]
Sped up proxied downloads from special remotes, by streaming
Currently works for special remotes that don't use fileRetriever. Ones that
do will download to another filename and rename it into place, defeating
the streaming.
This actually benchmarks slightly slower when getting a large file from
a fast proxied special remote. However, when the proxied special remote
is slow, it will be a big win.
Joey Hess [Tue, 15 Oct 2024 15:56:42 +0000 (11:56 -0400)]
implement openFileBeingWritten
This bypasses the usual haskell file locking used to prevent opening a
file for read that is being written to.
This is unfortunately a bit of a hack. But it seems fairly unlikely to
get broken by changes to ghc. I hope. Using fdToHandle' will also work.
This does not work on windows because it uses openFd from posix. It
would probably be possible to implement it for windows too, just opening
the FD using the Win32 library instead. However, whether windows will
allow reading from a file that is also being written to I don't know,
and since in the git-annex case the writer could be another process (eg
external special remote), that might be doing its own locking in
windows, that seems a can of worms I'd prefer not to open.
Joey Hess [Tue, 15 Oct 2024 14:31:42 +0000 (10:31 -0400)]
update
matrss [Mon, 14 Oct 2024 12:21:54 +0000 (12:21 +0000)]
Added a comment