summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [FUSE] Buffer upload reply contents and conditionally printSimon Rettberg2024-05-152-3/+9
|
* [FUSE] I'M AN IDIOTSimon Rettberg2024-05-131-1/+1
|
* [FUSE] Fix hang when trying to chmod/chown /img or /statusSimon Rettberg2024-05-131-1/+3
| | | | No reply was ever given for unhandled requests. Return EACCES.
* [FUSE] Don't exit on SIGQUIT, just stop uploadingSimon Rettberg2024-05-133-10/+1Star
|
* [FUSE] Fix printf lengthSimon Rettberg2024-05-131-2/+2
|
* [FUSE] CleanupSimon Rettberg2024-05-131-7/+6Star
|
* [FUSE] Reset cluster fail counter on successful uploadSimon Rettberg2024-05-131-0/+1
|
* [FUSE] Fix race conditionSimon Rettberg2024-05-131-1/+5
|
* [FUSE] Fix uninitialized speed bufferSimon Rettberg2024-05-131-1/+1
|
* [FUSE] Fix check for failed statsfile writeSimon Rettberg2024-05-131-1/+1
|
* [FUSE] Fix division by zeroSimon Rettberg2024-05-131-1/+1
|
* [FUSE] Fix use-after-free of curl_slist; unify init codeSimon Rettberg2024-05-131-31/+38
|
* [FUSE] Move curl reset to start of functionSimon Rettberg2024-05-131-2/+1Star
|
* [FUSE] Rename version -> revision in /createSimon Rettberg2024-05-132-54/+59
| | | | Also turn into normal POST with urlencoded payload.
* [FUSE] Use CURLOPT_HEADERFUNCTION instead of curl_easy_headerSimon Rettberg2024-05-132-23/+49
| | | | | curl_easy_header was introduced in 7.83, so not even available in Ubuntu 22.04. Switch to manual header parsing.
* [FUSE] More cleanup and minor fixesSimon Rettberg2024-05-136-288/+395
| | | | | | | | - Add support for aborting session and further uploads via SIGQUIT - Make API versioned - Change it to "uuid" everywhere instead of a mix of uuid and guid - Server can now tell us to wait with further uploads - merge request is now urlencoded POST instead of mime data
* [FUSE] Rename COW API endpoints againSimon Rettberg2024-05-131-10/+15
| | | | | Add a version to the URL, rest can be configured dynamically by -C as it's a simple prefix.
* [FUSE] cow: More fixes and refactoringSimon Rettberg2024-05-134-489/+558
| | | | | | | | | | | | | | Don't allocate a data cluster in data file for empty l2 entries when resizing the image file. Calculating l2 offset in metadata file was broken and overlapping l1. Delete unneeded entries from cow struct. Rename a few more variables. Fix a few possible race conditions. Only upload modified blocks from cluster. Simplify cow_write() function by handling misaligned start/end first. Try to also simplify cow_read() a bit. TODO: Documentation, update the cow merger service.
* [FUSE] cow: Cleanup, comments, fixes, minor refactoringSimon Rettberg2024-05-135-396/+474
| | | | | | | | | - Use the term "cluster" for a group of dnbd3-blocks instead of also calling them blocks. - Use term "table" instead of "array" for the L1 and L2 tables. - Use term "index" instead of "offset" when addressing those tables - Fix a few logic bugs, use-after-free - Add TODOs for parts that need better comments
* [FUSE] Fixed cow daemon issueMichael Scherle2024-05-136-21/+19Star
|
* [COWTEST] improvements to cowtest readmeMichael Scherle2024-05-133-118/+250
|
* [COWTEST] random test now cancels on ctrl-cMichael Scherle2024-05-131-40/+33Star
|
* [FUSE] added pthread creation error messageMichael Scherle2024-05-131-2/+2
|
* added github ci for fuse with cowMichael Scherle2024-05-132-6/+17
|
* [FUSE] basic cow implementation & rudimentary testsMichael Scherle2024-05-1314-70/+3589
|
* [KERNEL] Fix build on 5.15 kernels >= 5.15.132Simon Rettberg2024-03-151-0/+1
|
* [KERNEL] Set fake RTT to 500ms on manual server switchSimon Rettberg2024-01-181-2/+2
| | | | | 5ms was apparently way too low and lead to frequent switch-aways from the local dnbd3-server on heavy load during bootup.
* [SERVER] Log errno if opening image file failsSimon Rettberg2023-06-301-3/+5
|
* [SERVER] Threadpool: Add active thread count to error messageSimon Rettberg2023-06-141-1/+1
|
* [KERNEL] Add Rocky 9 supportSimon Rettberg2023-06-072-8/+20
| | | | | Co-authored-by: Jonathan Bauer <jonathan.bauer@rz.uni-freiburg.de> Co-authored-by: Manuel Messner <mm@skelett.io>
* [FUSE] Fix termination condition for reading host listSimon Rettberg2023-02-141-1/+1
|
* [FUSE] Make initial connect entirely parallel wrt serversSimon Rettberg2023-02-121-111/+232
| | | | | | | | | | | | Previously, we only did the actual socket connect in a concurrent matter. Once a connection was successfully established, we did a blocking handshake on the protocol level. If the server war particularly slow, this was bad as we would not try other servers until after this. Throw out the previous non-blocking async connect logic, switching to a multi-threaded approach, that spawns one thread per host/ip, offset by 200ms, until one of the attempts succeeds.
* [SHARED] sock_printable: Always null-terminateSimon Rettberg2023-02-121-1/+4
|
* [FUSE] Fix AIOOB accessSimon Rettberg2023-02-121-2/+1Star
|
* [KERNEL] Rename logigng macros, change debug level of a few messagesSimon Rettberg2023-02-061-21/+25
|
* [KERNEL] Actually fix build on 6.0+Simon Rettberg2023-01-111-5/+5
|
* [KERNEL] Update for Linux 6.1Simon Rettberg2023-01-092-7/+25
|
* Fix linter issues to satisfy Linux kernel code styleManuel Bentele2022-10-052-8/+11
|
* [SERVER] Don't establish uplink when loading image on startupSimon Rettberg2022-09-131-1/+1
| | | | | | | Bringing up a proxy that has been offline for some time will trigger lots of loads and replication on other proxies when booting up again. Just wait until a client actually needs an image before establishing an uplink connection.
* [KERNEL] Adapt to Linux 5.18Simon Rettberg2022-06-142-1/+14
|
* [FUSE] Adapt to changed macro namesSimon Rettberg2022-05-201-4/+4
|
* [KERNEL] IOCTL_SWITCH: Always boost/fake RTT valuesSimon Rettberg2022-03-241-17/+17
| | | | Even if we didn't switch because we already use the requested server.
* [KERNEL] Fix possible stall when switching serverSimon Rettberg2022-03-041-1/+9
| | | | | | | If we switch to a different server when we only have something in the send list but nothing in the recv list, the send worker would not have gotten invoked. Now we unconditionally trigger the send worker when asked to re-queue any pending requests.
* [KERNEL] Fix copy&paste error (passing wrong sock)Simon Rettberg2022-02-231-2/+2
|
* [KERNEL] Refactor to use workqueues and blk-mq onlySimon Rettberg2022-02-1810-1162/+892Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using workqueues frees us from having to manage the lifecycle of three dedicated threads. Discovery (alt server checks) and sending keepalive packets is now done using work on the power efficient system queue. Sending and receiving happens via dedicated work queues with higher priority. blk-mq has also been around for quite a while in the kernel, so switching to it doesn't hurt backwards compatibility. As the code is now refactored to work more as blk-mq is designed, backwards compatibility even improved while at the same time freeing us from an arsenal of macros that were required to make the blk-mq port look and feel like the old implementation. For example, the code now compiles on CentOS 7 with kernel 3.10 without requiring special macros to detect the heavily modified RedHat kernel with all its backported features. A few other design limitations have been rectified along the way, e.g. switching to another server now doesn't internally disconnect from the current one first, which theoretically could lead to a non-working setup, if the new server isn't reachable and then - because of some transient network error - switching back also fails. As the discover-thread was torn down from the disconnect call, the connection would also not repair itself eventually. we now establish the new connection in parallel to the old one, and only if that succeeds do we replace the old one with it, similar to how the automatic alt-server switch already does it.
* [KERNEL] Add missing include to fix compile on 4.14.xSimon Rettberg2022-02-111-0/+1
|
* [KERNEL] Add support for Linux kernel 5.15.x LTSManuel Bentele2021-11-302-4/+40
|
* [KERNEL] Fix wurstfingered missing ;Simon Rettberg2021-11-081-1/+1
|
* [KERNEL] Explicitly pass proper addrlen on connect; improve debug logSimon Rettberg2021-11-081-3/+7
|
* [KERNEL] Don't log connect failures as errors for RTT checksSimon Rettberg2021-10-191-16/+24
| | | | | | | This spams scary red errors to dmesg when really an unreachable alt server isn't that much of a deal during normal operation. Change the log level to debug instead. Might even consider not printing anything at all.