Closed ma8ma closed 3 months ago
AddressSanitizer を使うジョブでハングアップが発生しました。最近ローカルの環境でもsanitizerを使うとハングアップに遭遇することがあり、一度ハングアップしたテストプログラムを再実行すると正常に実行する場合もあります。
ハングアップしたテストのログ
ninja: Entering directory `/home/runner/work/JDim/JDim/builddir'
[1/3] Generating src/buildinfo.h with a custom command
INFO: GIT Hash = "eb084b8fbb"
INFO: GIT Date = "20240316"
INFO: src/buildinfo.h is not modified.
1/1 gtest tests RUNNING
>>> MALLOC_PERTURB_=109 /home/runner/work/JDim/JDim/builddir/test/gtest_jdim
gtest tests time out (After 30 seconds)
1/1 gtest tests TIMEOUT 30.23s killed by signal 15 SIGTERM
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
stderr:
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
(以下タイムアウトするまで出力される)
googletest のリポジトリを検索したところ同じような現象が issue に報告されています。 https://github.com/google/googletest/issues/4491
とりあえずGitHub ActionsのジョブがAddressSanitizer:DEADLYSIGNAL
を出力し続けてハングアップしたときはジョブの結果を無視してマージすることにします。
edit: sanitizerがハングアップしたローカル環境の表示
$ LANG=C uname -srvm
Linux 6.5.0-25-generic #25-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 7 14:58:39 UTC 2024 x86_64
$ LANG=C lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.10
Release: 23.10
Codename: mantic
$ LANG=C gcc --version
gcc (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ LANG=C pkg-config --modversion gtest
1.13.0
edit2: このPRより後に開いた https://github.com/JDimproved/JDim/pull/1364 のジョブは成功しました。
Fix compiler warnings for -Wextra-semi-stmt part1
ステートメントの後ろに余分なセミコロンが付いており効果がないとclangに指摘されたため取り除きます。
clang-17のレポート (file pathを一部省略)
``` src/article/articleview.cpp:488:103: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/articleview.cpp:672:104: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/articleview.cpp:694:80: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/articleviewbase.cpp:1042:49: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/articleviewbase.cpp:3760:30: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:133:70: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:155:71: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:1450:56: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:1939:86: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:2519:38: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:2569:38: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:2738:56: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/board/boardviewbase.cpp:727:64: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/control/controlutil.cpp:557:49: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/control/mousekeyconf.cpp:64:28: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/image/imageview.cpp:399:82: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/image/imageviewicon.cpp:217:54: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/jdlib/loader.cpp:1009:84: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/jdlib/loader.cpp:1010:97: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/jdlib/loader.cpp:1011:66: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] ```Fix compiler warnings for -Wextra-semi-stmt part2
ステートメントの後ろに余分なセミコロンが付いており効果がないとclangに指摘されたため取り除きます。
clang-17のレポート (file pathを一部省略)
``` src/article/drawareabase.cpp:2198:56: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:2199:62: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:3395:86: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:4305:35: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:4324:50: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/drawareabase.cpp:5155:66: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/article/layouttree.cpp:659:42: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/core.cpp:2787:65: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/dbtree/bbsmenu.cpp:285:70: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/dbtree/boardbase.cpp:2193:5: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/dbtree/root.cpp:195:28: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/dbtree/root.cpp:260:74: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/searchloader.cpp:41:105: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/skeleton/tablabel.cpp:189:49: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/skeleton/tablabel.cpp:204:70: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/skeleton/treeviewbase.cpp:291:21: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] src/usrcmdpref.cpp:163:104: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] ```