Re: [STUMP] Stumpwm Crashes when disconnecting monitor via xrandr.

Eric Abrahamsen <[email protected]>
Newsgroups gmane.comp.window-managers.stumpwm.devel
Message-ID <[email protected]>
David Bjergaard <[email protected]> writes:

> Can someone summarize the state of this bug? I have very little time to
> dig into this, and I have no way of reproducing it on my machines.  I
> know that there was some references to previous patches to address
> this.  That would at least localize this bug to some region of the code.

It's this commit:

https://github.com/stumpwm/stumpwm/commit/8a59c96f340351559f87a39685268e8c15a98e0e

The bit at the top, lines 118 to 120. There was something funny about
the :key argument of the call to `sort'. I think the reason no one could
figure it out was that it didn't make much sense that providing a more
complex key to the sort would cause a crash. Yet it did. Or perhaps I've
gotten it backwards; at any rate this is the commit, and this is the
code section that causes the problem.

>
>     Dave
>
> Eric Abrahamsen <[email protected]> writes:
>
>> Ernesto Alfonso <[email protected]> writes:
>>
>>> After I physically remove my external monitor, I run an xrandr
>>> command to logically disconnect it. When doing this, and there are
>>> frames in the disconnected screen/monitor, stumpwm crashes with an
>>> "unhandled error",
>>
>> Yup, this is a known bug, you could subscribe to this report if you
>> like:
>>
>> https://github.com/stumpwm/stumpwm/issues/71
>>
>>> The xrandr command consists of something like the following:
>>>
>>> xrandr --output VGA1 --off
>>>
>>> The error backtrace is copied below. (Also, the
>>> "copy-unhandled-error" does not work for me. I had to run the below
>>> command via swank)
>>
>> I've noticed the same thing -- copy-unhandled-error doesn't seem to do
>> anything. Perhaps a new bug report...
>>
>>> (format nil "~a~%~a" (first *last-unhandled-error*) (second
>>> *last-unhandled-error*))
>>> "The value NIL is not of type FRAME.
>>> 0: (SB-DEBUG::MAP-BACKTRACE
>>>     #<CLOSURE (LAMBDA # :IN SB-DEBUG:BACKTRACE) {100607126B}>
>>>     :START
>>>     0
>>>     :COUNT
>>>     100)
>>> 1: (SB-DEBUG:BACKTRACE 100 #<SB-IMPL::STRING-OUTPUT-STREAM
>>> {1006071163}>)
>>> 2: (STUMPWM::BACKTRACE-STRING)
>>> 3: (STUMPWM::PERFORM-TOP-LEVEL-ERROR-ACTION
>>>     #<TYPE-ERROR expected-type: STUMPWM::FRAME datum: NIL>)
>>> 4: (SIGNAL #<TYPE-ERROR expected-type: STUMPWM::FRAME datum: NIL>)
>>> 5: (ERROR TYPE-ERROR :DATUM NIL :EXPECTED-TYPE STUMPWM::FRAME)
>>> 6: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER
>>>     #<unavailable argument>
>>>     #.(SB-SYS:INT-SAP #X7FFFF6EBED80)
>>>     #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7FFFF6EBE8C0 :TYPE (*
>>>                                                                
>>> (SB-ALIEN:STRUCT
>>>                                                                 
>>> SB-VM::OS-CONTEXT-T-STRUCT))>
>>>     (149 21))
>>> 7: (SB-KERNEL:INTERNAL-ERROR
>>>     #.(SB-SYS:INT-SAP #X7FFFF6EBE8C0)
>>>     #<unavailable argument>)
>>> 8: (\"foreign function: call_into_lisp\")
>>> 9: (\"foreign function: funcall2\")
>>> 10: (\"foreign function: interrupt_internal_error\")
>>> 11: (\"foreign function: #x41357B\")
>>> 12: ((SB-PCL::FAST-METHOD STUMPWM::GROUP-CURRENT-WINDOW
>>> (STUMPWM::TILE-GROUP))
>>>      #<unavailable argument>
>>>      #<unavailable argument>
>>>      #<STUMPWM::TILE-GROUP {1003D44AF3}>)
>>> 13: (STUMPWM::HIDE-WINDOW #S(TILE-WINDOW \"ROXTerm\" #x600003))
>>> 14: ((SB-PCL::FAST-METHOD STUMPWM::GROUP-REMOVE-HEAD
>>> (STUMPWM::TILE-GROUP T))
>>>      #<unavailable argument>
>>>      #<unavailable argument>
>>>      #<STUMPWM::TILE-GROUP {1003D44AF3}>
>>>      #S(frame 1 NIL 0 0 1280 800))
>>> 15: (STUMPWM::REMOVE-HEAD
>>>      #S<screen #<XLIB:SCREEN :0.0 1280x800x24 TRUE-COLOR>>
>>>      #S(frame 1 NIL 0 0 1280 800))
>>> 16: (STUMPWM::SCALE-SCREEN
>>>      #S<screen #<XLIB:SCREEN :0.0 1280x800x24 TRUE-COLOR>>
>>>      (#S(frame 0 NIL 0 0 1280 800)))
>>> 17: ((LABELS #:G76 :IN \"/home/ernesto/programs/stumpwm/events.lisp\
>>> ")
>>>      :STACK-MODE
>>>      NIL
>>>      :WINDOW
>>>      #<XLIB:WINDOW :0 AC>
>>>      :X
>>>      0
>>>      :Y
>>>      0
>>>      :WIDTH
>>>      1280
>>>      :HEIGHT
>>>      800
>>>      :BORDER-WIDTH
>>>      0
>>>      :VALUE-MASK
>>>      NIL)
>>> 18: (STUMPWM::HANDLE-EVENT
>>>      :DISPLAY
>>>      #<XLIB:DISPLAY :0 (The X.Org Foundation R11204000)>
>>>      :EVENT-KEY
>>>      :CONFIGURE-NOTIFY
>>>      :EVENT-CODE
>>>      22
>>>      :SEND-EVENT-P
>>>      NIL
>>>      :SEQUENCE
>>>      26141
>>>      :EVENT-WINDOW
>>>      #<XLIB:WINDOW :0 AC>
>>>      :WINDOW
>>>      #<XLIB:WINDOW :0 AC>
>>>      :ABOVE-SIBLING
>>>      NIL
>>>      :X
>>>      0
>>>      :Y
>>>      0
>>>      :WIDTH
>>>      1280
>>>      :HEIGHT
>>>      800
>>>      :BORDER-WIDTH
>>>      0
>>>      :OVERRIDE-REDIRECT-P
>>>      NIL)
>>> 19: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN
>>> XLIB:PROCESS-EVENT))
>>> 20: ((FLET #:WITHOUT-INTERRUPTS-BODY-89240 :IN
>>> SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
>>> 21: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
>>>      #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN
>>> XLIB:PROCESS-EVENT)
>>>        {7FFFF6EBF5FB}>
>>>      #<SB-THREAD:MUTEX \"CLX Event Lock\"
>>>          owner: #<SB-THREAD:THREAD \"main thread\" RUNNING
>>> {1003C71043}>>)
>>> 22: ((FLET SB-IMPL::TIMEOUT-BODY :IN XLIB:PROCESS-EVENT))
>>> 23: (XLIB:PROCESS-EVENT
>>>      #<XLIB:DISPLAY :0 (The X.Org Foundation R11204000)>
>>>      :HANDLER
>>>      #<FUNCTION STUMPWM::HANDLE-EVENT>
>>>      :TIMEOUT
>>>      0
>>>      :PEEK-P
>>>      NIL
>>>      :DISCARD-P
>>>      NIL
>>>      :FORCE-OUTPUT-P
>>>      T)
>>> 24: ((FLET #:WITHOUT-INTERRUPTS-BODY-89240 :IN
>>> SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
>>> 25: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
>>>      #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN
>>> STUMPWM::STUMPWM-INTERNAL-LOOP)
>>>        {7FFFF6EBFB2B}>
>>>      #<SB-THREAD:MUTEX \"CLX Event Lock\"
>>>          owner: #<SB-THREAD:THREAD \"main thread\" RUNNING
>>> {1003C71043}>>)
>>> 26: (STUMPWM::STUMPWM-INTERNAL-LOOP)
>>> 27: (STUMPWM::STUMPWM-INTERNAL \":0\")
>>> 28: (STUMPWM \":0\")
>>> 29: ((LAMBDA () :IN \"/home/ernesto/programs/stumpwm/make-image.lisp\
>>> "))
>>> 30: ((FLET #:WITHOUT-INTERRUPTS-BODY-236916 :IN
>>> SB-EXT:SAVE-LISP-AND-DIE))
>>> 31: ((LABELS SB-IMPL::RESTART-LISP :IN SB-EXT:SAVE-LISP-AND-DIE))
>>> "
>>>
>>>
>>> _______________________________________________
>>> Stumpwm-devel mailing list
>>> [email protected]
>>> https://lists.nongnu.org/mailman/listinfo/stumpwm-devel
>>
>>
>> _______________________________________________
>> Stumpwm-devel mailing list
>> [email protected]
>> https://lists.nongnu.org/mailman/listinfo/stumpwm-devel
>
> _______________________________________________
> Stumpwm-devel mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/stumpwm-devel


_______________________________________________
Stumpwm-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/stumpwm-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.