ActivityWatch/aw-watcher-window

900GB Log File caused by error in error handler

Morpheus0x opened this issue · 1 comments

I have two log files that are significantly larger than the usual logs, aw-watcher-window_2022-09-26T21-46-19.log which is almost 400MB and aw-watcher-window_2022-10-07T07-36-39.log which is over 900GB!

There appears to be an issue with error handling in aw-watcher-window. Both log files contains an ever-increasing stack trace.
Prior and subsequent logs have an acceptable size between a couple of bytes up to a max of 100KB.

This is with activitywatch version v0.12.0, I haven't updated yet and don't see anything regarding this in the changelogs for v0.12.1.

Head of log file aw-watcher-window_2022-10-07T07-36-39.log:

2022-10-07 07:36:39 [INFO ]: aw-watcher-window started  (aw_watcher_window.main:52)
2022-10-07 07:36:40 [INFO ]: Connection to aw-server established by aw-watcher-window  (aw_client.client:429)
2022-10-07 15:19:21 [WARNING]: Unable to get window class, got a BadWindow exception.  (aw_watcher_window.xlib:85)
2022-10-07 15:19:21 [WARNING]: Code made an unclear branch  (aw_watcher_window.xlib:91)
2022-10-07 15:19:21 [WARNING]: Unable to get window query_tree().parent, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:95)
2022-10-07 15:19:21 [WARNING]: Unable to get window property NET_WM_NAME, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-07 15:19:21 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 15, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 60, in get_window_name
  File "Xlib/xobject/drawable.py", line 669, in get_wm_name
  File "Xlib/xobject/drawable.py", line 486, in get_full_text_property
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1389, in reply
Xlib.error.BadWindow: <class 'Xlib.error.BadWindow'>: code = 3, resource_id = <Resource 0x05600003>, sequence_number = 331, major_opcode = 20, minor_opcode = 0
2022-10-11 15:47:57 [WARNING]: Unable to get window property NET_WM_NAME, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-11 15:47:57 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 15, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 60, in get_window_name
  File "Xlib/xobject/drawable.py", line 669, in get_wm_name
  File "Xlib/xobject/drawable.py", line 486, in get_full_text_property
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1389, in reply
Xlib.error.BadWindow: <class 'Xlib.error.BadWindow'>: code = 3, resource_id = <Resource 0x05c000d9>, sequence_number = 58876, major_opcode = 20, minor_opcode = 0
2022-10-14 08:53:39 [WARNING]: Unable to get window property NET_WM_NAME, got a BadValue exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-14 08:53:39 [WARNING]: I don't think this case will ever happen, but not sure so leaving this message here just in case.  (aw_watcher_window.xlib:64)
2022-10-14 13:02:28 [WARNING]: Unable to get window class, got a BadWindow exception.  (aw_watcher_window.xlib:85)
2022-10-14 13:02:28 [WARNING]: Code made an unclear branch  (aw_watcher_window.xlib:91)
2022-10-14 13:02:28 [WARNING]: Unable to get window query_tree().parent, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:95)
2022-10-14 13:02:28 [WARNING]: Unable to get window property NET_WM_NAME, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-14 13:02:28 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 15, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 60, in get_window_name
  File "Xlib/xobject/drawable.py", line 669, in get_wm_name
  File "Xlib/xobject/drawable.py", line 486, in get_full_text_property
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1389, in reply
Xlib.error.BadWindow: <class 'Xlib.error.BadWindow'>: code = 3, resource_id = <Resource 0x06200003>, sequence_number = 3736, major_opcode = 20, minor_opcode = 0
2022-10-15 08:15:21 [WARNING]: Unable to get window class, got a BadWindow exception.  (aw_watcher_window.xlib:85)
2022-10-15 08:15:21 [WARNING]: Code made an unclear branch  (aw_watcher_window.xlib:91)
2022-10-15 08:15:21 [WARNING]: Unable to get window query_tree().parent, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:95)
2022-10-15 08:15:21 [WARNING]: Unable to get window property NET_WM_NAME, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-15 08:15:21 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 15, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 60, in get_window_name
  File "Xlib/xobject/drawable.py", line 669, in get_wm_name
  File "Xlib/xobject/drawable.py", line 486, in get_full_text_property
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1389, in reply
Xlib.error.BadWindow: <class 'Xlib.error.BadWindow'>: code = 3, resource_id = <Resource 0x02200004>, sequence_number = 35501, major_opcode = 20, minor_opcode = 0
2022-10-15 15:40:06 [WARNING]: Unable to get window class, got a BadWindow exception.  (aw_watcher_window.xlib:85)
2022-10-15 15:40:06 [WARNING]: Code made an unclear branch  (aw_watcher_window.xlib:91)
2022-10-15 15:40:06 [WARNING]: Unable to get window query_tree().parent, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:95)
2022-10-15 15:40:06 [WARNING]: Unable to get window property NET_WM_NAME, got a BadWindow exception from Xlib  (aw_watcher_window.xlib:54)
2022-10-15 15:40:07 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 15, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 60, in get_window_name
  File "Xlib/xobject/drawable.py", line 669, in get_wm_name
  File "Xlib/xobject/drawable.py", line 486, in get_full_text_property
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1389, in reply
Xlib.error.BadWindow: <class 'Xlib.error.BadWindow'>: code = 3, resource_id = <Resource 0x07a00004>, sequence_number = 4872, major_opcode = 20, minor_opcode = 0
2022-10-15 15:43:16 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "Xlib/protocol/display.py", line 583, in send_and_recv
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1381, in reply
  File "Xlib/protocol/display.py", line 586, in send_and_recv
Xlib.error.ConnectionClosedError: Display connection closed by server: [Errno 32] Broken pipe
2022-10-15 15:43:17 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "Xlib/protocol/display.py", line 583, in send_and_recv
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1367, in __init__
  File "Xlib/protocol/display.py", line 355, in send_request
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1381, in reply
  File "Xlib/protocol/display.py", line 586, in send_and_recv
Xlib.error.ConnectionClosedError: Display connection closed by server: [Errno 32] Broken pipe
2022-10-15 15:43:18 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "Xlib/protocol/display.py", line 583, in send_and_recv
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1367, in __init__
  File "Xlib/protocol/display.py", line 355, in send_request
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1367, in __init__
  File "Xlib/protocol/display.py", line 355, in send_request
  File "aw_watcher_window/main.py", line 74, in heartbeat_loop
  File "aw_watcher_window/lib.py", line 53, in get_current_window
  File "aw_watcher_window/lib.py", line 8, in get_current_window_linux
  File "aw_watcher_window/xlib.py", line 37, in get_current_window
  File "aw_watcher_window/xlib.py", line 20, in _get_current_window_id
  File "Xlib/xobject/drawable.py", line 472, in get_full_property
  File "Xlib/xobject/drawable.py", line 455, in get_property
  File "Xlib/protocol/rq.py", line 1369, in __init__
  File "Xlib/protocol/rq.py", line 1381, in reply
  File "Xlib/protocol/display.py", line 586, in send_and_recv
Xlib.error.ConnectionClosedError: Display connection closed by server: [Errno 32] Broken pipe
2022-10-15 15:43:19 [ERROR]: Exception thrown while trying to get active window  (aw_watcher_window.main:77)
Traceback (most recent call last):
  File "Xlib/protocol/display.py", line 583, in send_and_recv
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Duplicate of ActivityWatch/activitywatch#756

Fixed in master, will be in the next release (sorry for the delay!)