Hi all,
I have a very annoying problem. xrdp got SIGSEGV when opening many
connections at same time.
This fault is not dipendent on absolute number of sessions opened but
on number of connections (or reconnections) that happen together.
Here the full BT:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xaf989b90 (LWP 4470)]
0x08053f89 in xrdp_painter_end_update (self=0x0) at xrdp_painter.c:62
62 libxrdp_orders_send(self->session);
(gdb) bt full
#0 0x08053f89 in xrdp_painter_end_update (self=0x0) at xrdp_painter.c:62
No locals.
#1 0x0805158d in server_end_update (mod=0xa845208) at xrdp_mm.c:1059
p = (struct xrdp_painter *) 0x0
#2 0x008ff5c2 in lib_mod_signal (mod=0xa845208) at xup.c:325
s = (struct stream *) 0xa84aea0
num_orders = 3
index = 2
rv = 0
x = 0
y = 3727199
cx = 11
cy = 64
fgcolor = <value optimized out>
opcode = <value optimized out>
width = 48
height = <value optimized out>
srcx = 13608017
srcy = <value optimized out>
style = <value optimized out>
x1 = 134560387
y1 = <value optimized out>
x2 = 176445856
y2 = <value optimized out>
bmpdata = 0xa851254
"�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�["
cur_data =
"s\000\000\000�Y\204\n\001\000\000\000�\205\230�\027\000\000\000c\000\000\000Q��\000\001\000\000\000s\000\000\000\f\000\000\000\203�v\000(\000\000\000s\000\000\000�\212\230�\001\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000{�v\000\024\000\000\000s\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\n\000\000\000�\212\230�\000\000\000\000\001",
'\0' <repeats 35 times>, "
�u\000��\20...@�\204\n\022\000\000\000x\000\000d��v\000\001\000\000\000h\206\230�t��\000��\204\n@�\204\nx\206\230��i�\000��\204\nhM\204\n\001\000\000\000��\004\b��\204\n�\213\230��\213\230��"...
cur_mask = '\0' <repeats 96 times>,
"t��\000\bR\204\n\b\000\000\0008\222\230�{{�\000K\000\000\000\000\000\000\000��\217"
#3 0x008ff928 in lib_mod_check_wait_objs (mod=0xa845208) at xup.c:478
rv = <value optimized out>
#4 0x08051638 in xrdp_mm_check_wait_objs (self=0xa7301f8) at xrdp_mm.c:1018
rv = 0
#5 0x080540ae in xrdp_process_main_loop (self=0xa6fc408) at xrdp_process.c:179
robjs_count = 6
wobjs_count = 0
timeout = -1
robjs = {8, 71, 69, 76, 75, 66, 0, 0, 0, 0, -1348955244,
13612404, 0, -1348953200, -1348955256, 13599363, 4797632, 13608016,
-1348955244, 0, 0, 0, -1348955196, 13612404,
-1348955244, 13612404, -1348955208, 13599441, 13608016, 134579277,
-1348955208, 1}
wobjs = {0 <repeats 14 times>, 3443712, 4797632, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3443712, 4797632, 0, 0, 0, 0}
term_obj = 8
#6 0x0804fa38 in xrdp_process_run (in_val=0x0) at xrdp_listen.c:115
process = (struct xrdp_process *) 0xa6fc408
---Type <return> to continue, or q <return> to quit---
another BT:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb0bfbb90 (LWP 4223)]
0x08053f89 in xrdp_painter_end_update (self=0x0) at xrdp_painter.c:62
62 libxrdp_orders_send(self->session);
(gdb) bt full
#0 0x08053f89 in xrdp_painter_end_update (self=0x0) at xrdp_painter.c:62
No locals.
#1 0x0805158d in server_end_update (mod=0xb0005030) at xrdp_mm.c:1059
p = (struct xrdp_painter *) 0x0
#2 0x004ca5c2 in lib_mod_signal (mod=0xb0005030) at xup.c:325
s = (struct stream *) 0xb0004618
num_orders = 3
index = 2
rv = 0
x = 182835031
y = 0
cx = 1170432
cy = 64
fgcolor = <value optimized out>
opcode = <value optimized out>
width = 48
height = <value optimized out>
srcx = 182714600
srcy = <value optimized out>
style = <value optimized out>
x1 = 2012532
y1 = <value optimized out>
x2 = 182716368
y2 = <value optimized out>
bmpdata = 0xb000262c
"�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�["
cur_data =
"\203\202\036\000��2\000P�\036\000\000�\021\000��2\000\000\000\000\000\000\000\000\000\024���t�\036\000䥿�t�\036\000\b����\202\036\000\000\000\000\000\000\000\000\000\024���",
'\0' <repeats 12 times>,
"D����N%\000�\a�\n�\000�\n8���\203\202\036\000��2\000P�\036\000D���t�\036\000\220\006�\n�F\000�\000\000\000\000\020\000\000��M\000�
\000\000\000�h1\000�\202\036\000p�\036\000m2\235\000t���t�\036\000d���t�\036\000�\235\234\000...@\235\000t����@\235\000\210���~z\234\000m2\235\000��"...
cur_mask = '\0' <repeats 96 times>,
"t�\036\0000P\000�\a\000\000\0008���{{\036\000G\000\000\000\000\000\000\000��L"
#3 0x004ca928 in lib_mod_check_wait_objs (mod=0xb0005030) at xup.c:478
rv = <value optimized out>
#4 0x08051638 in xrdp_mm_check_wait_objs (self=0xae09e28) at xrdp_mm.c:1018
rv = 0
#5 0x080540ae in xrdp_process_main_loop (self=0xae0a450) at xrdp_process.c:179
robjs_count = 6
wobjs_count = 0
timeout = -1
robjs = {7, 66, 67, 72, 71, 63, 0, 0, 0, 0, -1329613932,
2012532, 0, -1329611888, -1329613944, 1999491, 3331264, 2008144,
-1329613932, 0, 0, 0, -1329613884, 2012532,
-1329613932, 2012532, -1329613896, 1999569, 2008144, 134579277,
-1329613896, 1}
wobjs = {0 <repeats 14 times>, 1170432, 3331264, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1170432, 3331264, 0, 0, 0, 0}
term_obj = 7
#6 0x0804fa38 in xrdp_process_run (in_val=0x0) at xrdp_listen.c:115
process = (struct xrdp_process *) 0xae0a450
#7 0x001155ab in start_thread () from /lib/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
Anyone can help me?
thanks
Nicola
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
xrdp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xrdp-devel