Re: [PATCH] fsmonitor: implement filesystem change listener for Linux
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 30, 2025, 11:38 UTC
- Message-ID
- <xmqqqzscfbcw.fsf@gitster.g>
- In-Reply-To
- <pull.2147.git.git.1767082450088.gitgitgadget@gmail.com>
Exciting.
It seems to die with leaks when "make SANITIZE=leak test" is run, though.
Initialized empty Git repository in /home/gitster/w/git.git/t/trash directory.t7527-builtin-fsmonitor/test_implicit/.git/ fsmonitor-daemon is not watching '/home/gitster/w/git.git/t/trash directory.t7527-builtin-fsmonitor/test_implicit' builtin:0.145521.20251230T113644.793433Z:0Q/Q {"event":"data","sid":"20251230T113644.762195Z-H3cfff1b1-P0002386f","thread":"main","time":"2025-12-30T11:36:44.813131Z","file":"fsmonitor-ipc.c","line":99,"t_abs":0.052581,"t_rel":0.048830,"nesting":2,"category":"fsm_client","key":"query/response-length","value":"45"} fsmonitor-daemon is watching '/home/gitster/w/git.git/t/trash directory.t7527-builtin-fsmonitor/test_implicit' fsmonitor-daemon is not watching '/home/gitster/w/git.git/t/trash directory.t7527-builtin-fsmonitor/test_implicit' fatal: fsmonitor--daemon is not running not ok 2 - implicit daemon start # # test_when_finished "stop_daemon_delete_repo test_implicit" && # # git init test_implicit && # test_must_fail git -C test_implicit fsmonitor--daemon status && # # # query will implicitly start the daemon. # # # # for test-script simplicity, we send a V1 timestamp rather than # # a V2 token. either way, the daemon response to any query contains # # a new V2 token. (the daemon may complain that we sent a V1 request, # # but this test case is only concerned with whether the daemon was # # implicitly started.) # # GIT_TRACE2_EVENT="$PWD/.git/trace" \ # test-tool -C test_implicit fsmonitor-client query --token 0 >actual && # nul_to_q <actual >actual.filtered && # grep "builtin:" actual.filtered && # # # confirm that a daemon was started in the background. # # # # since the mechanism for starting the background daemon is platform # # dependent, just confirm that the foreground command received a # # response from the daemon. # # have_t2_data_event fsm_client query/response-length <.git/trace && # # git -C test_implicit fsmonitor--daemon status && # git -C test_implicit fsmonitor--daemon stop && # test_must_fail git -C test_implicit fsmonitor--daemon status # 1..2
================================================================= ==git==145489==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 512 byte(s) in 1 object(s) allocated from:
#0 0x56179e6ce042 in calloc (git+0x8c042) (BuildId: de5ce3c9d0b0c09380c910e6a9eb181e324abde6)
#1 0x56179ea0aef4 in xcalloc wrapper.c:154:8
#2 0x56179e8b17b7 in alloc_table hashmap.c:79:2
#3 0x56179e8b174c in hashmap_init hashmap.c:168:2
#4 0x56179e73e6fe in fsmonitor_run_daemon builtin/fsmonitor--daemon.c:1288:2
#5 0x56179e73e141 in try_to_run_foreground_daemon builtin/fsmonitor--daemon.c:1448:11
#6 0x56179e73dc44 in cmd_fsmonitor__daemon builtin/fsmonitor--daemon.c:1584:12
#7 0x56179e6d2c8a in run_builtin git.c:506:11
#8 0x56179e6d1910 in handle_builtin git.c:779:9
#9 0x56179e6d2747 in run_argv git.c:862:4
#10 0x56179e6d169b in cmd_main git.c:984:19
#11 0x56179e7f7a7a in main common-main.c:9:11
#12 0x7f091ea66ca7 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#13 0x7f091ea66d64 in __libc_start_main csu/../csu/libc-start.c:360:3
#14 0x56179e69e280 in _start (git+0x5c280) (BuildId: de5ce3c9d0b0c09380c910e6a9eb181e324abde6)