some extra v2-transport debug logging

This commit is contained in:
Eric 2024-06-26 11:28:24 -07:00
parent de85edbce6
commit 93b1de30af
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
6 changed files with 86 additions and 55 deletions

88
.efrocachemap generated
View File

@ -4038,50 +4038,50 @@
"build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1",
"build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "dc369671ed8cf359dc975fb374228e72", "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "d9afde0c1cc61b1fa27aed723afd9ede",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "e68906c43196a9d1155a4123011100b0", "build/prefab/full/linux_arm64_gui/release/ballisticakit": "42fc71b128260196094cc517deba76db",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "c8d9ff095234fed4a7fd53c38b32d373", "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "764f0b4661e0c92d5c376356f5fa8825",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "f74e32bce84c8adec701f73d95ab4aa0", "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "a6ae3a8df85d6b245a944164c437471b",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "3469fce4b1822fbaac3259e4f4093813", "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "b5a068b26fc52668bbb4f79eba5c047d",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "102e124c031cd2fbb0d8f07b011a6570", "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "b3636e3fb8e268ced15daa2a2256ee44",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "aa9c9d30698c6e4ffe6cf2ea6b8abccf", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "d5b503fe1aa2681724581e02ea049f73",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "e851caab7095c8fb4e86371a07fe1ef3", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "d465f04ba2c8fa98624db8cf38e9177e",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "1e7d3dd4ee831e1b4fef02dac2cdf2c0", "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "d0b8c22e04f83f712b0033b427282eea",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "c6f5942cd35a6f209d22a304475ecc94", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "03e09fdffcbcb6a0ea967e81c3b0c7c9",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "5dcc548316208f72622bd8bbdd2a766e", "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "932a3acd7abd13074eebfc03e0e7d56c",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "39d8555b9519033ff29619cd5753b1ae", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "bbe5aa04abb57add770af26fc101d488",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "83be5f800c1b705bb14df420547dd6ec", "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "3c33079f35aff14e62117f30f297b2c5",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "ccc1fd541825bf5a0efadef750e915ee", "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "36567f3012c97261d54ddff9d682e4da",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "2e33f242beb0d9b586ca5af2e1e5f41c", "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "5c30ad4693e19c3f4261711e38b6b5a5",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "37f2931b93009be12f2d0d4b4009324c", "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "ec40d7abbe4d0ad4cc35667fb9685784",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "c8a99fc6e23280073703e707507a35d3", "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "cb685b901201a75b094c1f5ac655155c",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "5d48cdcb174073091faafbd8d24fd909", "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "0d2c6f859dc14ee5eb5267e06128e090",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "afe045e68caca489e2573b60580c42e3", "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "df7849c6f6bee1c20ce74cb46fa591b2",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "b769836453e5e027b1608e7da7d3dad7", "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "069841aea1eb622b693c98eed7482a35",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "c471e06d03862e91a2a949806803efbd", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "f231b10895bdcb542de87b887ca181fd",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "4f7b8eed54eb4c7d2b6400aaa4dfa37c", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "ae936a119668ede7b36f38c8672f4bf8",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "c471e06d03862e91a2a949806803efbd", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "f231b10895bdcb542de87b887ca181fd",
"build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "4f7b8eed54eb4c7d2b6400aaa4dfa37c", "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "ae936a119668ede7b36f38c8672f4bf8",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "ec5f39fe33f753cace45ecda7b78e376", "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "419b7edff05748a74370f29945bca90c",
"build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "5ca18c2abecb1b369ddd7ff43880baa0", "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "1e75c6c1f0b0aae130bacfb8b65507cc",
"build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "ec5f39fe33f753cace45ecda7b78e376", "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "419b7edff05748a74370f29945bca90c",
"build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "5ca18c2abecb1b369ddd7ff43880baa0", "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "1e75c6c1f0b0aae130bacfb8b65507cc",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "789b8d5e80d66c74af1ff0b978301704", "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "d965aa38a18627966633308f5a4e61b9",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "4fa185d99e799027b324704de3925aca", "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "5d12b05022f064c2aaf096c466da687c",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "789b8d5e80d66c74af1ff0b978301704", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "d965aa38a18627966633308f5a4e61b9",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "4fa185d99e799027b324704de3925aca", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "5d12b05022f064c2aaf096c466da687c",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "3b9db190dc436e7bfd4521b94d9b5974", "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "ff5b18144bf249558517bff7c97dc84f",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "cd5c91eecddb1da4e8204e3496466a07", "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "efffc4f330e77530accd9a9f82840a6c",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "9adc2dc1c5c3cdc1ca6fc98fc76644c5", "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "c20363fe2af3d54e666b1c8ee67f6b76",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "cd5c91eecddb1da4e8204e3496466a07", "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "efffc4f330e77530accd9a9f82840a6c",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "f129bbdc61d24d31cea6105b6cf45461", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "a75854a744d9f2abe9027fe03ea4d458",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "289d0bc2a5e77eef85b681967c0b8988", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "4581a1ce0934b7b3ea5bf8a46823a761",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "58f826bab8e8cde386a92426f68acd4a", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "99ee35add584cbdeead0d845a637ad18",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "d1f4ce60d3f02ea0e6ae4397ea7d08f6", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "83ec9375d7c1bc790cc3e784488960b0",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "b05c5926eda50c9c31452824da8544cd", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "7838f2899be0eedeb352a9f31bd9f860",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "5cb7beea136bd1aa9873e8b3397f52e2", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "c27c37020a0c0b29792435f05a8c19b6",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "4071322052a81a5f4ed13bf51523829b", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "40326b4848a648ece17d2f2f50e2cc27",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "e4db16386e09a1bbf3103919a2e653af", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "281f67c8179e1f5d7fd1445ed4069699",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "5548f407d97e380069f6c596c4e36cd7", "src/assets/ba_data/python/babase/_mgen/enums.py": "5548f407d97e380069f6c596c4e36cd7",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "efa61468cf098f77cc6a234461d8b86d", "src/ballistica/base/mgen/pyembed/binding_base.inc": "efa61468cf098f77cc6a234461d8b86d",

View File

@ -1,4 +1,4 @@
### 1.7.36 (build 21894, api 8, 2024-06-22) ### 1.7.36 (build 21895, api 8, 2024-06-26)
### 1.7.35 (build 21889, api 8, 2024-06-20) ### 1.7.35 (build 21889, api 8, 2024-06-20)
- Fixed an issue where the engine would block at exit on some version of Linux - Fixed an issue where the engine would block at exit on some version of Linux

View File

@ -2,11 +2,11 @@ cpplint==1.6.1
dmgbuild==1.6.1 dmgbuild==1.6.1
filelock==3.15.4 filelock==3.15.4
furo==2024.5.6 furo==2024.5.6
mypy==1.10.0 mypy==1.10.1
pbxproj==4.1.0 pbxproj==4.2.0
pdoc==14.5.0 pdoc==14.5.1
pur==7.3.2 pur==7.3.2
pylint==3.2.3 pylint==3.2.4
pylsp-mypy==0.6.8 pylsp-mypy==0.6.8
pytest==8.2.2 pytest==8.2.2
python-daemon==3.0.1 python-daemon==3.0.1

View File

@ -52,7 +52,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be # Build number and version of the ballistica binary we expect to be
# using. # using.
TARGET_BALLISTICA_BUILD = 21894 TARGET_BALLISTICA_BUILD = 21895
TARGET_BALLISTICA_VERSION = '1.7.36' TARGET_BALLISTICA_VERSION = '1.7.36'

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica { namespace ballistica {
// These are set automatically via script; don't modify them here. // These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 21894; const int kEngineBuildNumber = 21895;
const char* kEngineVersion = "1.7.36"; const char* kEngineVersion = "1.7.36";
const int kEngineApiVersion = 8; const int kEngineApiVersion = 8;

View File

@ -399,8 +399,8 @@ class DeadlockWatcher:
Use the enable_deadlock_watchers() to enable this system. Use the enable_deadlock_watchers() to enable this system.
Next, create these in contexts where they will be torn down after Next, use these wrapped in a with statement around some operation
some operation completes. If any is not torn down within the that may deadlock. If the with statement does not complete within the
timeout period, a traceback of all threads will be dumped. timeout period, a traceback of all threads will be dumped.
Note that the checker thread runs a cycle every ~5 seconds, so Note that the checker thread runs a cycle every ~5 seconds, so
@ -442,10 +442,39 @@ class DeadlockWatcher:
if curthread.ident is None if curthread.ident is None
else hex(curthread.ident).removeprefix('0x') else hex(curthread.ident).removeprefix('0x')
) )
self.active = False
with cls.watchers_lock: with cls.watchers_lock:
cls.watchers.append(weakref.ref(self)) cls.watchers.append(weakref.ref(self))
# Support the with statement.
def __enter__(self) -> Any:
self.active = True
return self
def __exit__(self, exc_type: Any, exc_value: Any, exc_tb: Any) -> None:
self.active = False
# Print if we lived past our deadline. This is just an extra
# data point. The watcher thread should be doing the actual
# stack dumps/etc.
if self.logger is None or self.logextra is None:
return
duration = time.monotonic() - self.create_time
if duration > self.timeout:
self.logger.error(
'DeadlockWatcher %s at %s in thread %s lived %.2fs,'
' past timeout %.2fs. This should have triggered'
' a deadlock dump.',
id(self),
self.caller_source_loc,
self.thread_id,
duration,
self.timeout,
extra=self.logextra,
)
@classmethod @classmethod
def enable_deadlock_watchers(cls) -> None: def enable_deadlock_watchers(cls) -> None:
"""Spins up deadlock-watcher functionality. """Spins up deadlock-watcher functionality.
@ -486,7 +515,7 @@ class DeadlockWatcher:
found_fresh_expired = False found_fresh_expired = False
# If any watcher is still alive but expired, sleep past the # If any watcher is still active and expired, sleep past the
# timeout to force the dumper to do its thing. # timeout to force the dumper to do its thing.
with cls.watchers_lock: with cls.watchers_lock:
@ -496,14 +525,16 @@ class DeadlockWatcher:
w is not None w is not None
and now - w.create_time > w.timeout and now - w.create_time > w.timeout
and not w.noted_expire and not w.noted_expire
and w.active
): ):
# If they supplied a logger, let them know they # If they supplied a logger, let them know they
# should check stderr for a dump. # should check stderr for a dump.
if w.logger is not None: if w.logger is not None:
w.logger.error( w.logger.error(
'DeadlockWatcher at %s in thread %s' 'DeadlockWatcher %s at %s in thread %s'
' with time %.2f expired;' ' with time %.2f expired;'
' check stderr for stack traces.', ' check stderr for stack traces.',
id(w),
w.caller_source_loc, w.caller_source_loc,
w.thread_id, w.thread_id,
w.timeout, w.timeout,