{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":314296202,"defaultBranch":"master","name":"sydtest","ownerLogin":"NorfairKing","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-11-19T15:54:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3521180?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721301888.0","currentOid":""},"activityList":{"items":[{"before":"a6889a47686a411943a977a61b1978514bc3d8cb","after":"23baea50a08857baf3121fc55096c40a93ff5f17","ref":"refs/heads/master","pushedAt":"2024-08-04T10:12:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Screenshot diffing","shortMessageHtmlLink":"Screenshot diffing"}},{"before":"a6889a47686a411943a977a61b1978514bc3d8cb","after":"23baea50a08857baf3121fc55096c40a93ff5f17","ref":"refs/heads/development","pushedAt":"2024-08-04T10:07:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Screenshot diffing","shortMessageHtmlLink":"Screenshot diffing"}},{"before":"1edff0f75646c183e41f5cf24d1d2ae25e0679aa","after":"37538be5699e81a46e52cabbb33e36bf2040ef28","ref":"refs/heads/screenshot-diff","pushedAt":"2024-08-04T01:11:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Screenshot diffing","shortMessageHtmlLink":"Screenshot diffing"}},{"before":"6043db95040af3de2df159f768df0639e042e930","after":"a6889a47686a411943a977a61b1978514bc3d8cb","ref":"refs/heads/master","pushedAt":"2024-08-03T19:05:32.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"opt-env-conf","shortMessageHtmlLink":"opt-env-conf"}},{"before":"4a0c77f242f7ef5c4ef95b3477310bc9983f1ec9","after":"a6889a47686a411943a977a61b1978514bc3d8cb","ref":"refs/heads/development","pushedAt":"2024-08-03T19:05:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"opt-env-conf","shortMessageHtmlLink":"opt-env-conf"}},{"before":"6043db95040af3de2df159f768df0639e042e930","after":"4a0c77f242f7ef5c4ef95b3477310bc9983f1ec9","ref":"refs/heads/development","pushedAt":"2024-08-03T15:56:53.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Merge pull request #90 from maxigit/master\n\nUpdate comparison table.","shortMessageHtmlLink":"Merge pull request #90 from maxigit/master"}},{"before":"5ebfb744bead889c4de5880a41bc020fcab03c1d","after":"b799b6dd5fd54b9dcff4c324c47a05ae46b2fca5","ref":"refs/heads/opt-env-conf","pushedAt":"2024-08-03T14:29:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"nicer docs","shortMessageHtmlLink":"nicer docs"}},{"before":"526efec90fe1246f3e27a195cc0f45a24a41c8fb","after":"5ebfb744bead889c4de5880a41bc020fcab03c1d","ref":"refs/heads/opt-env-conf","pushedAt":"2024-08-03T11:29:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"first draft of opt-env-conf","shortMessageHtmlLink":"first draft of opt-env-conf"}},{"before":"7b403af43e203706d6b199ddb5bf1ffb55f65bc5","after":"526efec90fe1246f3e27a195cc0f45a24a41c8fb","ref":"refs/heads/opt-env-conf","pushedAt":"2024-08-02T21:20:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"compiles","shortMessageHtmlLink":"compiles"}},{"before":"6be618a53366d2453ba55da6cddc119d6d589916","after":"6043db95040af3de2df159f768df0639e042e930","ref":"refs/heads/master","pushedAt":"2024-07-20T07:14:18.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Dev shell cleanup","shortMessageHtmlLink":"Dev shell cleanup"}},{"before":"f34f20294b6e79f034aa7afb41dd3c05ddf917a0","after":"6043db95040af3de2df159f768df0639e042e930","ref":"refs/heads/development","pushedAt":"2024-07-20T07:11:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Dev shell cleanup","shortMessageHtmlLink":"Dev shell cleanup"}},{"before":"1ddb7a1d9a6218e5caf73a4a070fce3af7c59b8f","after":"f34f20294b6e79f034aa7afb41dd3c05ddf917a0","ref":"refs/heads/development","pushedAt":"2024-07-18T11:44:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Drop support for versions before nixos-23.05","shortMessageHtmlLink":"Drop support for versions before nixos-23.05"}},{"before":null,"after":"0d270229fdf497dad3b69f34649f7985e5e111b1","ref":"refs/heads/filter-flag","pushedAt":"2024-07-18T11:24:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Fix filter flag parsing","shortMessageHtmlLink":"Fix filter flag parsing"}},{"before":null,"after":"7f3b92762cb413d09b58d608cc7d9c87212e31c8","ref":"refs/heads/race-condition-fix","pushedAt":"2024-07-16T19:13:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"fix: race condition in asynchronous runner\n\nThis closes bug #82.\n\nThe `blockUntilDone` and `jobQueueWorker` had a race condition. When the\nlatest job was `dequeueJob` from the queue and before the worker pick\nthe semaphore with `waitQSem`, the `blockUntilDone` function was able to\nterminate (e.g. the queue was empty and all semaphore were available).\n\nThe result of this race condition was that before the latest job\ncompletion, the `runner` will terminate and this would have three\npossible outcomes:\n\n- Either an `AsyncCancel` exception in the job, when workers were\n canceled, leading to a failure of the latest test (The exception was\n caught by the test runner). This exception would then fill the status\n of the job, allowing the correct termination of the `waiter` job. If\n the exception was received by the worker \"outside\" of the \"test\"\n logic, it would bubble up and be rethrown in the `runner` thread,\n killing it which would cause the second outcome,\n- Either an `Main: thread blocked indefinitely in an MVar operation`\n when the `waiter` job, still waiting for the end of a job or the\n fastFail, realised that the `fastFail` was no longer writable\n (`runner` job was dead).\n\nNote that these are the observable results of this race condition, but\nthere is more fun, the `sequential` block was actually NOT guaranteed to\nbe run in perfect isolation (for the same reason: early termination of\nthe `blockUntilDone` logic).\n\nIn order to fix this, picking a job in the queue and notifying that a\nworker is working should be atomic. (e.g. `dequeueJob` and `waitQSem` in\n`jobQueueWorker` should be atomic). This was not trivial / simple to do\nby using the `QSem`, whith is not composable with the `dequeueJob` (e.g.\n`IO` based synchro vs `STM` ones) so instead this commit replaces the\n`N` semaphore by one `TVar Int` accounting for the number of currently\nrunning jobs. The atomicity of the `dequeue` and `notification` is now\nensured by an `STM` transaction.\n\nNote that this implementation lost the feature of knowing which worker\nthread is used or not: it was previously a `Vector` of `QSem`, each cell\nof the vector containing the information if the worker was used or not.\nThis is replaced by a global count of worker used. If this feature is\nrequested in the future, the `TVar Int` could be replaced by a `TVar\n(Vector Bool)` or any similar bitfield handled by `STM`.\n\nA note about `blockUntilDone`: the wait for the empty job queue and\nwaiting for the number of used worker to be `0` is now done in the same\nSTM transaction. In the current context it does not change anything (a\nrunning job is not able, as much as we know, to push jobs in the queue),\nso the queue cannot be refilled once empty and there is only one\nproducer of the queue: the main walk, `goForest`. However having both in\nthe same transaction does not impact the performance and may protect a\nfuture refactoring allowing new jobs to be generated on the fly.","shortMessageHtmlLink":"fix: race condition in asynchronous runner"}},{"before":null,"after":"466d68b12d16dcc7a09ca3bd9085eb57e8adcbef","ref":"refs/heads/race-condition","pushedAt":"2024-07-16T19:10:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"failing test","shortMessageHtmlLink":"failing test"}},{"before":"6be618a53366d2453ba55da6cddc119d6d589916","after":"1ddb7a1d9a6218e5caf73a4a070fce3af7c59b8f","ref":"refs/heads/development","pushedAt":"2024-07-09T12:27:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Refactor out sydtest-test, and upgrade sydtest-autodocodec","shortMessageHtmlLink":"Refactor out sydtest-test, and upgrade sydtest-autodocodec"}},{"before":null,"after":"cfd18ac055ba18ed3a0eaaf850735d6a49a698af","ref":"refs/heads/e2e-wai","pushedAt":"2024-07-01T13:32:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"allow running sydtest-wai on a remote server too","shortMessageHtmlLink":"allow running sydtest-wai on a remote server too"}},{"before":"5448d68f4fd72541e54cf558bffb9f62953fff0b","after":"7b403af43e203706d6b199ddb5bf1ffb55f65bc5","ref":"refs/heads/opt-env-conf","pushedAt":"2024-07-01T13:22:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"trying","shortMessageHtmlLink":"trying"}},{"before":"9dcf71036556f5604aee2720f83a5c240f9f3d0c","after":"5448d68f4fd72541e54cf558bffb9f62953fff0b","ref":"refs/heads/opt-env-conf","pushedAt":"2024-06-24T15:14:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"some progress","shortMessageHtmlLink":"some progress"}},{"before":null,"after":"9dcf71036556f5604aee2720f83a5c240f9f3d0c","ref":"refs/heads/opt-env-conf","pushedAt":"2024-06-24T15:14:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"factor sydtest-test out","shortMessageHtmlLink":"factor sydtest-test out"}},{"before":"074ace83d237dd602fbd006626a3958407a57fed","after":"6be618a53366d2453ba55da6cddc119d6d589916","ref":"refs/heads/development","pushedAt":"2024-06-03T05:06:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to check against ghc 9.10 and remove mentions of amqp","shortMessageHtmlLink":"Upgrade to check against ghc 9.10 and remove mentions of amqp"}},{"before":"074ace83d237dd602fbd006626a3958407a57fed","after":"6be618a53366d2453ba55da6cddc119d6d589916","ref":"refs/heads/master","pushedAt":"2024-06-03T05:06:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to check against ghc 9.10 and remove mentions of amqp","shortMessageHtmlLink":"Upgrade to check against ghc 9.10 and remove mentions of amqp"}},{"before":"352bd93035210f3811634288d0dd73fe0507f2af","after":"074ace83d237dd602fbd006626a3958407a57fed","ref":"refs/heads/master","pushedAt":"2024-06-03T03:11:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"trying to upgrade","shortMessageHtmlLink":"trying to upgrade"}},{"before":"352bd93035210f3811634288d0dd73fe0507f2af","after":"074ace83d237dd602fbd006626a3958407a57fed","ref":"refs/heads/development","pushedAt":"2024-06-03T03:11:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"trying to upgrade","shortMessageHtmlLink":"trying to upgrade"}},{"before":"4bd8ad801c059a8f731c08a6f0171e2c097e589b","after":"074ace83d237dd602fbd006626a3958407a57fed","ref":"refs/heads/upgrade","pushedAt":"2024-06-02T21:43:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"trying to upgrade","shortMessageHtmlLink":"trying to upgrade"}},{"before":"f8d9f3be3f22a45056481d52639dc254488c48cf","after":"352bd93035210f3811634288d0dd73fe0507f2af","ref":"refs/heads/master","pushedAt":"2024-05-30T08:09:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to check against ghc 9.10 and remove mentions of amqp","shortMessageHtmlLink":"Upgrade to check against ghc 9.10 and remove mentions of amqp"}},{"before":"d22ec20ca32854f880295cb373f84e874be916bb","after":"f8d9f3be3f22a45056481d52639dc254488c48cf","ref":"refs/heads/master","pushedAt":"2024-05-30T08:09:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"fix typo","shortMessageHtmlLink":"fix typo"}},{"before":"d22ec20ca32854f880295cb373f84e874be916bb","after":"352bd93035210f3811634288d0dd73fe0507f2af","ref":"refs/heads/development","pushedAt":"2024-05-30T08:08:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to check against ghc 9.10 and remove mentions of amqp","shortMessageHtmlLink":"Upgrade to check against ghc 9.10 and remove mentions of amqp"}},{"before":"6313c1b211d14c1215cdf97b9933675cf9c2adb9","after":"d22ec20ca32854f880295cb373f84e874be916bb","ref":"refs/heads/development","pushedAt":"2023-12-06T13:35:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to nixos-23.11 and lts 21.22","shortMessageHtmlLink":"Upgrade to nixos-23.11 and lts 21.22"}},{"before":"6313c1b211d14c1215cdf97b9933675cf9c2adb9","after":"d22ec20ca32854f880295cb373f84e874be916bb","ref":"refs/heads/master","pushedAt":"2023-12-06T13:35:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NorfairKing","name":"Tom Sydney Kerckhove","path":"/NorfairKing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3521180?s=80&v=4"},"commit":{"message":"Upgrade to nixos-23.11 and lts 21.22","shortMessageHtmlLink":"Upgrade to nixos-23.11 and lts 21.22"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wNFQxMDoxMjowNi4wMDAwMDBazwAAAASRO_tY","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wNFQxMDoxMjowNi4wMDAwMDBazwAAAASRO_tY","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMi0wNlQxMzozNTo1NC4wMDAwMDBazwAAAAPCuX-C"}},"title":"Activity ยท NorfairKing/sydtest"}