Closed isaki68k closed 2 years ago
メモ。c34dbf54 なのは分かった。
2e8719a3 (2022-02-21) でとりあえず修正。 clock-sync=virtual でないと起きない(起きにくい?)はず。
最小化したパッチ。
--- a/vm/rtc.cpp
+++ b/vm/rtc.cpp
@@ -237,7 +237,11 @@ RTCDevice::ClockIn_PowerOff()
// RTC が現実より遅れているので早回し
return 0;
} else {
- return stime - rt;
+ uint64 dt = stime - rt;
+ if (dt > period * 2) {
+ dt = period * 2;
+ }
+ return dt;
}
}
あおやまさんにて追試。これが解決にはならなかったようだ (が、それはそれとして、clock-sync=virtualの時に待たされる問題は直ったはず)。
https://twitter.com/ao_kenji/status/1496262997140189184
対応ありがとうございます。残念ながらこちらの環境では変化なしでした。 なお、GUI版を起動して、メニューの File → Exit でも同様の現象(メニューに反応しなくなり、Ctrl-Cで終了)になります。
固まった時のバックトレースを依頼。signalthreadがまだ生きているあたりというくらいか…。
https://twitter.com/ao_kenji/status/1496440326973648900
nono(GUI版)起動 → メニューで File-Exit 選択 → 固まる → kill ABRT したときの core を gdb で読み込んだものです。なお、debugger-port = 0 指定です。
(gdb) bt #0 _thread_sys___thrsigdivert () at /tmp/-:3 #1 0x0000093ec2a30880 in sigwait (set=Unhandled dwarf expression opcode 0xa3 ) at /usr/src/lib/libc/gen/sigwait.c:39 Die: DW_TAG_<unknown> (abbrev = 79, offset = 7391166) has children: FALSE attributes: DW_AT_type (DW_FORM_ref4) constant ref: 7373331 (adjusted) Dwarf Error: Cannot find type of die [in module /home/aoyama/work/nono-0.2.6/wx/nono] (gdb)
https://twitter.com/ao_kenji/status/1545978857358241792
報告遅くなりましたが以下の issue について OpenBSD/amd64 7.1 + nono-0.4.0 では正常に終了するようになりました。
4a34b3ae (2022-05-05) の SIGPIPE の修正が効いたはず。
Ubuntuでも一回起きてたけど、
https://twitter.com/ao_kenji/status/1494489011456724992
https://twitter.com/ao_kenji/status/1494656733327007749