This is the errors: ./tests/test-logging.exe # random seed: R02S3184056dae59ebe73ccdba81f5807d40 1..4 # Start of logging tests ok 1 /logging/parse_range ok 2 /logging/parse_path ok 3 /logging/logfile_write_path ok 4 /logging/logfile_lock_path # End of logging tests ** ERROR:../tests/test-logging.c:196:rmdir_full: assertion failed: (g_remove(entry_path) == 0) Bail out! ERROR:../tests/test-logging.c:196:rmdir_full: assertion failed: (g_remove(entry_path) == 0)
---------- Forwarded message --------- From: 罗勇刚(Yonggang Luo) <luoyongg...@gmail.com> Date: Tue, Sep 8, 2020 at 6:48 PM Subject: test-logging.c are failling because when removing those logging files, the longging file handlers are not closed To: qemu-level <qemu-devel@nongnu.org> I found qemu_log_close use call_rcu with qemu_logfile_free to closing log files. What I need to do to wait those logging files closed? I tried to using synchronize_rcu but have no effection void qemu_log_close(void) { QemuLogFile *logfile; qemu_mutex_lock(&qemu_logfile_mutex); logfile = qemu_logfile; if (logfile) { atomic_rcu_set(&qemu_logfile, NULL); call_rcu(logfile, qemu_logfile_free, rcu); } qemu_mutex_unlock(&qemu_logfile_mutex); } -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo