{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":64215435,"defaultBranch":"master","name":"Netopeer2","ownerLogin":"jktjkt","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2016-07-26T11:18:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2631925?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716549834.0","currentOid":""},"activityList":{"items":[{"before":"360dd7d0466103473e3140d211d7f7bb67844011","after":"430add6edb32cc50e9d8af20fbd15a6250744141","ref":"refs/heads/fix-socket-path","pushedAt":"2024-05-24T11:28:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: shave a few more bytes from the socket paths","shortMessageHtmlLink":"tests: shave a few more bytes from the socket paths"}},{"before":null,"after":"360dd7d0466103473e3140d211d7f7bb67844011","ref":"refs/heads/fix-socket-path","pushedAt":"2024-05-24T11:23:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: shave a few more bytes from the socket paths","shortMessageHtmlLink":"tests: shave a few more bytes from the socket paths"}},{"before":"c555ed5f58401352d54ba1cf965acdb042d67c95","after":"a8658ad0d7a3c1a38f066db8a019b06e52d06bb6","ref":"refs/heads/fix-pam-install","pushedAt":"2024-04-08T10:31:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"cmake: don't hard-code absolute path name /etc\n\n- this breaks packaging and installation into a prefix in general\n- there's a GNUInstallDirs variable for /etc, too\n\nAlso, don't make this installation conditional on the existence of /etc.\nWhether or not that directory exists on a build system has no meaning\nfor installation to a target system. This had a potential to break\ncross-compiling.","shortMessageHtmlLink":"cmake: don't hard-code absolute path name /etc"}},{"before":null,"after":"c555ed5f58401352d54ba1cf965acdb042d67c95","ref":"refs/heads/fix-pam-install","pushedAt":"2024-04-08T10:29:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"cmake: don't hard-code absolute path name /etc\n\n- this breaks packaging and installation into a prefix in general\n- there's a GNUInstallDirs variable for /etc, too","shortMessageHtmlLink":"cmake: don't hard-code absolute path name /etc"}},{"before":"03bb2c3c751ae0aac26065c4bf032f6bcf6cbe34","after":null,"ref":"refs/heads/tsan/SIGEV_THREAD","pushedAt":"2023-06-16T14:47:42.724Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"}},{"before":"0b637d9dea5d4921d93b3b060143910e60e14885","after":null,"ref":"refs/heads/just-timeouts","pushedAt":"2023-06-16T14:47:33.382Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"}},{"before":"0b637d9dea5d4921d93b3b060143910e60e14885","after":null,"ref":"refs/heads/fix-timeouts","pushedAt":"2023-06-16T14:47:33.382Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"}},{"before":"ff7c004e48eff05c90328f9b70728e397bb08595","after":"03bb2c3c751ae0aac26065c4bf032f6bcf6cbe34","ref":"refs/heads/tsan/SIGEV_THREAD","pushedAt":"2023-06-16T11:31:05.697Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: SIGEV_THREAD doesn't work under TSAN\n\nAs per the docs, the SIGEV_THREAD sigevent option instructs the kernel\nto create a thread in this process when that timer expires (in fact this\nis done by the C library, and the kernel \"just\" wakes up that thread\nAFAICT). However, this newly created thread appears to have completely\nbypassed TSAN, and when the just-created thread hits any TSAN\ninterceptor which assumes that some per-thread TSAN structures have been\nalready set up, the application segfaults (for example like this):\n\n #0 0x00005555556192d4 in __tsan::user_alloc_internal(__tsan::ThreadState*, unsigned long, unsigned long, unsigned long, bool) ()\n #1 0x00005555556196a4 in __tsan::user_alloc(__tsan::ThreadState*, unsigned long, unsigned long) ()\n #2 0x00005555555d3db5 in malloc ()\n #3 0x00007ffff7889470 in timer_helper_thread (arg=) at ../sysdeps/unix/sysv/linux/timer_routines.c:88\n #4 0x00007ffff787ddd4 in start_thread (arg=) at pthread_create.c:444\n #5 0x00007ffff78ff9b0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81\n\nThat's with the latest clang, or, in another case, with GCC:\n\n #0 0x00007ffff4e88fc6 in __sanitizer::CombinedAllocator<__sanitizer::SizeClassAllocator64<__tsan::AP64>, __sanitizer::LargeMmapAllocatorPtrArrayDynamic>::Allocate(__sanitizer::SizeClassAllocator64LocalCache<__sanitizer::SizeClassAllocator64<__tsan::AP64> >*, unsigned long, unsigned long) () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #1 0x00007ffff4e8686a in __tsan::user_alloc_internal(__tsan::ThreadState*, unsigned long, unsigned long, unsigned long, bool) ()\n from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #2 0x00007ffff4e869d8 in __tsan::user_alloc(__tsan::ThreadState*, unsigned long, unsigned long) () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #3 0x00007ffff4e4331e in malloc () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #4 0x00007ffff4cab4c0 in timer_helper_thread (arg=) at ../sysdeps/unix/sysv/linux/timer_routines.c:88\n #5 0x00007ffff4c9fe24 in start_thread (arg=) at pthread_create.c:444\n #6 0x00007ffff4d219b0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81\n\nI have no clue on how to fix this properly within TSAN.\n\nBug: https://github.com/google/sanitizers/issues/1612","shortMessageHtmlLink":"tests: SIGEV_THREAD doesn't work under TSAN"}},{"before":"1664289cddcddd392b688d11bc3554fdf7603253","after":"0b637d9dea5d4921d93b3b060143910e60e14885","ref":"refs/heads/fix-timeouts","pushedAt":"2023-06-15T16:26:58.255Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"compat: return ETIMEDOUT when timing out","shortMessageHtmlLink":"compat: return ETIMEDOUT when timing out"}},{"before":null,"after":"0b637d9dea5d4921d93b3b060143910e60e14885","ref":"refs/heads/just-timeouts","pushedAt":"2023-06-15T16:26:34.613Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"compat: return ETIMEDOUT when timing out","shortMessageHtmlLink":"compat: return ETIMEDOUT when timing out"}},{"before":null,"after":"1664289cddcddd392b688d11bc3554fdf7603253","ref":"refs/heads/fix-timeouts","pushedAt":"2023-06-15T16:25:21.785Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"compat: return ETIMEDOUT when timing out","shortMessageHtmlLink":"compat: return ETIMEDOUT when timing out"}},{"before":null,"after":"ff7c004e48eff05c90328f9b70728e397bb08595","ref":"refs/heads/tsan/SIGEV_THREAD","pushedAt":"2023-06-15T15:26:15.561Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: SIGEV_THREAD doesn't work under TSAN\n\nAs per the docs, the SIGEV_THREAD sigevent option instructs the kernel\nto create a thread in this process when that timer expires (in fact this\nis done by the C library, and the kernel \"just\" wakes up that thread\nAFAICT). However, this newly created thread appears to have completely\nbypassed TSAN, and when the just-created thread hits any TSAN\ninterceptor which assumes that some per-thread TSAN structures have been\nalready set up, the application segfaults (for example like this):\n\n #0 0x00005555556192d4 in __tsan::user_alloc_internal(__tsan::ThreadState*, unsigned long, unsigned long, unsigned long, bool) ()\n #1 0x00005555556196a4 in __tsan::user_alloc(__tsan::ThreadState*, unsigned long, unsigned long) ()\n #2 0x00005555555d3db5 in malloc ()\n #3 0x00007ffff7889470 in timer_helper_thread (arg=) at ../sysdeps/unix/sysv/linux/timer_routines.c:88\n #4 0x00007ffff787ddd4 in start_thread (arg=) at pthread_create.c:444\n #5 0x00007ffff78ff9b0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81\n\nThat's with the latest clang, or, in another case, with GCC:\n\n #0 0x00007ffff4e88fc6 in __sanitizer::CombinedAllocator<__sanitizer::SizeClassAllocator64<__tsan::AP64>, __sanitizer::LargeMmapAllocatorPtrArrayDynamic>::Allocate(__sanitizer::SizeClassAllocator64LocalCache<__sanitizer::SizeClassAllocator64<__tsan::AP64> >*, unsigned long, unsigned long) () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #1 0x00007ffff4e8686a in __tsan::user_alloc_internal(__tsan::ThreadState*, unsigned long, unsigned long, unsigned long, bool) ()\n from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #2 0x00007ffff4e869d8 in __tsan::user_alloc(__tsan::ThreadState*, unsigned long, unsigned long) () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #3 0x00007ffff4e4331e in malloc () from /nix/store/ds46sf6mb9xydn0gy97131y1w5hag5s8-gcc-12.2.0-lib/lib/libtsan.so.2\n #4 0x00007ffff4cab4c0 in timer_helper_thread (arg=) at ../sysdeps/unix/sysv/linux/timer_routines.c:88\n #5 0x00007ffff4c9fe24 in start_thread (arg=) at pthread_create.c:444\n #6 0x00007ffff4d219b0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81\n\nI have no clue on how to fix this properly within TSAN.\n\nBug: https://github.com/google/sanitizers/issues/1612","shortMessageHtmlLink":"tests: SIGEV_THREAD doesn't work under TSAN"}},{"before":"213bad5911a3b00991dbefb81449f548d341aed0","after":null,"ref":"refs/heads/clang-pthread-gnu-source","pushedAt":"2023-03-27T09:20:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"}},{"before":null,"after":"213bad5911a3b00991dbefb81449f548d341aed0","ref":"refs/heads/clang-pthread-gnu-source","pushedAt":"2023-03-23T22:36:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"build: `pthread_rwlock_t` is not available without feature macros\n\nWhen building `src/netconf_monitoring.c` with all the custom pthread\nfunctionality disabled via CMake options (i.e., forcing the usage of the\ncompat library), the build fails with the following error:\n\n Netopeer2/compat/compat.h:149:32: error: unknown type name 'pthread_rwlock_t'\n\nI was getting the same error on my NixOS with clang 15.0.7, but also on\nan older Fedora with clang 12.\n\nThis exact same header file is included from a variety of other places,\nand (which is where these symbols live) is included as well.\nIt turns out that the `pthread_rwlock_t` was added in Issue 5 of POSIX,\nand when using the C99 standard along with no feature test macros to\npick a specific version of POSIX functions, these might not be visible.\nIndeed this place does not define `_GNU_SOURCE` (which brings in a lot\nof stuff, including a new enough POSIX).\n\nSolve this by using `_GNU_SOURCE` also from this file.\n\nFixes: 7e5349b compat UPDATE use latest compat lib\nFixes: 28138d5 build UPDATE use c99 standard instead of gnu99","shortMessageHtmlLink":"build: pthread_rwlock_t is not available without feature macros"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUvcFCAA","startCursor":null,"endCursor":null}},"title":"Activity · jktjkt/Netopeer2"}