Hi,

I'm not sure how useful this will be. For Solaris we are using SIGSTKSZ
increased from 8000 to 16384. But recently we have seen few core dumps
like


0000000ccfc42860 vim`mch_write+0x22()
0000000ccfc42890 vim`ui_write+0x5b()
0000000ccfc428b0 vim`stoptermcap+0xc6()
0000000ccfc428c0 preserve_exit+0x32()
0000000ccfc428d0 libc.so.1`__sighndlr+6()
0000000ccfc42970 libc.so.1`call_user_handler+0x2f1()
0000000ccfc429a0 libc.so.1`sigacthandler+0xde(1, 0, ccfc429c0)
00007fd8658283e0 libc.so.1`__pollsys+0xa()
00007fd865828470 libc.so.1`pselect+0x193()
00007fd865828490 libc.so.1`select+0x6b()
00007fd86582e4f0 vim`RealWaitForChar+0x147()
00007fd865834550 vim`WaitForCharOrMouse+0x1fa()
00007fd8658345a0 vim`ui_wait_for_chars_or_timer+0x13d()
00007fd865834600 vim`mch_inchar+0x141()
00007fd865834630 vim`ui_inchar+0xd0()
00007fd865834710 inchar+0x1c6()
00007fd8658347e0 vgetorpeek+0x1ce5()
00007fd865834840 vgetc+0x8f()
00007fd865834850 safe_vgetc+9()
00007fd865834920 normal_cmd+0x134()
00007fd865834a10 vim`main_loop+0x85e()
00007fd865834a60 vim`vim_main2+0x9ec()
00007fd865834ab0 vim`main+0x464()
00007fd865834ac0 0x4b4244()

Sadly I don't have reproducible case.

It turns out that the signal stack is exhausted. Looking into the source
code, mch_write calls RealWaitForChar (in fact it is being inlined in
our case). And RealWaitForChar has

        fd_set          rfds, wfds, efds;

When compiled 64bit, fd_set is 8192 bytes. We have three of them, and
indeed the function tries to allocate roughly 3*8192 of stack. So I'm
planning on quadrupling the signal stack size to 65536.

On the other hand, I guess that these three are the biggest thing on the
signal stack. Maybe pre-allocating or making them global variables would
be better solution.


Hope this helps
-- 
        Vlad

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui