summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
3 daysFix a theoretical bug where a short request packet yields an oob readDirk Engling
3 daysFix an accesslist reload issue where an empty-but-present changeset after a reload could potentially walk a NULL arrayDirk Engling
3 daysFix: livesync watermark used sizeof(ot_peer) which is a byte. Clamping on copy length nowDirk Engling
3 daysGives urlencoded_parse a destination boundDirk Engling
3 daysAdd a wall clock helper so that statedumps can be written and re-readDirk Engling
3 daysBound what load_state will accept for an ageDirk Engling
4 daysStop reading a connection a worker has taken overDirk Engling
4 daysAnswer blacklisted torrent announces with an empty packet, that carries a re-announce timeoutDirk Engling
4 daysStart live sync where main knows the state file is inDirk Engling
4 daysRead the accesslist before any consumer consults itDirk Engling
4 daysFix: Restoring a state file doubled every completed countDirk Engling
4 daysTake the clock off the wallDirk Engling
4 daysClamp every elapsed time span at zero, using a set of helper functionsDirk Engling
6 daysRefuse to start on a listen statement that does not parseDirk Engling
6 daysRefuse to start on a livesync.cluster.group that is not oneDirk Engling
6 daysLet a user pick their cluster's own multicast groupDirk Engling
7 daysLet a tracker with live sync built in run without a clusterDirk Engling
7 daysGive the live sync worker a real workstructDirk Engling
7 daysAdd integration tests for live syncDirk Engling
7 daysRetire old perl backend to the proxy, but don't delete it yetDirk Engling
7 daysTurn the bucket count into a knob, but keep cleaner wake-ups at a constant rateDirk Engling
7 daysSweep the obsolete CVS Id keyword out of the treeDirk Engling
8 daysRemove tracker id from stats, as wellDirk Engling
8 daysRemove version string from what is reported over httpDirk Engling
8 daysadd test for the version report fascilitiesDirk Engling
8 daysPrepare a versioning mechanism for the tracker that works from tarballsDirk Engling
8 daysLive logging networks was defunc for a while, does not work with v6, so we remove itDirk Engling
9 daysAdd some tests for the actual trackerlogic, something I put off for too longDirk Engling
9 daysAdd tests for the ot_mutex code, it didn't have any until nowDirk Engling
9 daysMake the dynamic accesslist readers release their line buffer and properly exitDirk Engling
9 daysRefactor ot_workqueue out of ot_mutex, no behaviour changeDirk Engling
9 daysMake tcp worker multithreaded, tooDirk Engling
This shamelessly steals the model established in the UDP workers, i.e. if the kernel is able to bind multiple listening sockets to the same endpoint, we will share them across threads. If it can't, all threads will accept on the same socket. The fast path handles most of the connections, only the rare case of no data yet on the socket is offloaded to the slow path (which used to be the mainloop) for completion. This scales nicely, as the higher the load is, the higher chances are that an accept happens only after the network roundtrip to the peer completes, leading to more connections that already have data waiting for us. We also consolidate the workstruct init and deinit code, preparation for later unifying all thread state structs for all protocols (mca, udc and tcp). The config file gains a per tcp connection worker count and some docs explaining what this knob buys and costs, nudging the user to either keep it 0 or dial it up to at least 2.
10 daysAdd test for new config paramsDirk Engling
10 daysAdd config parsers for multiple tcp socket readers and a helper to see if we can offer it on the platformDirk Engling
10 daysIntroduce a fast path assuming that a tcp connection's payload already has arrived at accept timeDirk Engling
10 daysFix idle tests in presence of an accept filterDirk Engling
10 daysFix expiry tests under the new accept filtersDirk Engling
10 daysDefer accepts until some data actually is thereDirk Engling
11 daysReduce syscalls and add helper to count themDirk Engling
11 daysAdd an http load generatorDirk Engling
11 daysCheck for free port in the udp integration test, also speed it up by a bitDirk Engling
11 daysConsolidate all tcp/http tear down into a single http_close function to prevent a rare UAF for expiring connectionsDirk Engling
12 daysadd wake-up tester that helped figuring out how to tickle hanging udp readersDirk Engling
12 daysRevert last wake-up experiment. Having each udp worker wake up once a second to check if the tracker stops is wastefulDirk Engling
12 daysFix a test that would over-report success rate when losing the race for cycles to the test targetDirk Engling
12 daysWith more workers blockingly waiting on udp sockets, we need to keep track of all sockets to shut them down on exitDirk Engling
12 daysLet the load tester log losses to better gauge performanceDirk Engling
12 daysAdd load tests to sanitize check the trackerlogic, based on udp requestsDirk Engling
13 daysThe main event loop(s) now also catch an EINTR and return instead of blockingDirk Engling
13 daysAdd concurrency testDirk Engling