popup_getoptions without a response (in vim v8.1.2144)

46 views
Skip to first unread message

Pontus Leitzler

unread,
Oct 16, 2019, 4:28:01 PM10/16/19
to vim_dev
Hi,

As a part of the channel-based plugin https://github.com/govim/govim test code I'm using popup_getoptions() to fetch the title of a popup created by the tests. To get the popup id:s I call "getbufinfo()".

What I have observed is that when I pass in a valid and existing popup id to "popup_getoptions(...)", I don't get any response and as a consequence the channel times out (if I understand it correctly). When I ask for a popup that doesn't exist I get a response immediately, and that is why I'm asking for advice here.

I had a quick shot at trying to create a small reproducible without any luck, and my best guess is that my failed attempt has to do with how scheduling works in govim (see related thread in https://groups.google.com/forum/#!searchin/vim_dev/paul$20jolly%7Csort:date/vim_dev/op_PKiE9iog/1C6_pfZZBgAJ).

Any ideas of how I can debug this further would be highly appreciated.


- Pontus


This is the end of my channel log as it happens fwiw, the entire log can be seen at https://gist.github.com/leitzler/6c7d5371149fd5b90a0a19ad2e6828ae:

'

  2.471613 : SafeState: back to waiting, triggering SafeStateAgain

  2.484205 RECV on 0(sock): '[0,[55,"call","s:schedule",5]]

'

  2.484215 : looking for messages on channels

  2.484250 on 0: Getting JSON message 0

  2.484261 on 0: Invoking channel callback <SNR>17_define

  2.484455 : minVimSafeState: running work immediately because state is 'c'

  2.484513 SEND on 0(sock): '[62,["schedule",5]]

'

  2.484533 on 0: Blocking read JSON for id 62

  2.484541 : looking for messages on channels

  2.484548 on 0: Waiting for up to 30000 msec

  2.484746 RECV on 0(sock): '[0,[56,"expr","GOVIM_internal_DumpPopups()"]]

'

  2.484757 : looking for messages on channels

  2.484770 on 0: Getting JSON message 0

  2.484777 on 0: Invoking channel callback <SNR>17_define

  2.484933 SEND on 0(sock): '[63,["function","function:GOVIM_internal_DumpPopups",[]]]

'

  2.484960 on 0: Blocking read JSON for id 63

  2.484975 : looking for messages on channels

  2.484983 on 0: Waiting for up to 30000 msec

  2.485197 RECV on 0(sock): '[0,[57,"expr","getbufinfo()"]]

'

  2.485222 : looking for messages on channels

  2.485240 on 0: Getting JSON message 0

  2.485249 on 0: Invoking channel callback <SNR>17_define

  2.485443 SEND on 0(sock): '[64,["callback",57,["",[{"lnum":6,"bufnr":1,"variables":{"did_ftplugin":1,"undo_ftplugin":"setl fo< com< cms<","changedtick":4,"current_syntax":"go","did_indent":1},"popups":[],"signs":[{"lnum":6,"id":1,"name":"govimerr","priority":10,"group":"govim"}],"name":"/private/var/folders/xm/ls208xd174v95pgd20rn_qbh0000gn/T/go-test-script063236289/script-suggested_fixes/main.go","changed":0,"loaded":1,"windows":[1000],"hidden":0,"listed":1,"changedtick":4},{"lnum":0,"bufnr":2,"variables":{"changedtick":1},"popups":[1001],"signs":[{"lnum":1,"id":1,"name":"popup-1001","priority":10,"group":"popupmenu"}],"name":"","changed":0,"loaded":1,"windows":[],"hidden":0,"listed":0,"changedtick":1}]]]]

'

  2.485480 : looking for messages on channels

  2.485490 on 0: Waiting for up to 30000 msec

  2.485823 RECV on 0(sock): '[0,[58,"expr","popup_getoptions(1001)"]]

'

  2.485837 : looking for messages on channels

  2.485857 on 0: Getting JSON message 0

  2.485872 on 0: Invoking channel callback <SNR>17_define

  2.486013 SEND on 0(sock): ''

  2.486037 : looking for messages on channels

  2.486042 on 0: Waiting for up to 30000 msec

 32.488599 on 0: Timed out on id 63

 32.488776 SEND on 0(sock): '[66,["callback",56,["Caught 'Vim(call):E474: Invalid argument' in function <SNR>17_define[51]..<SNR>17_schedule[22]..<SNR>17_drainScheduleBacklog[14]..<SNR>17_ch_evalexpr[2]..<SNR>17_define[46]..GOVIM_internal_DumpPopups[3]..<SNR>17_callbackFunction[2]..<SNR>17_ch_evalexpr[2]..<SNR>17_define, line 64"]]]

'

Reply all
Reply to author
Forward
0 new messages