xpra icon
Bug tracker and wiki

Opened 4 years ago

Closed 4 years ago

#938 closed defect (fixed)

mmap error when the server stops abruptly with lots of traffic

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 0.16
Component: core Version: 0.15.x
Keywords: Cc:

Description

Triggered this a few times by connecting to a local X11 shadow server at a high resolution:

2015-08-09 19:32:19,397 error processing damage data: expected a single-segment buffer object
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/server/source.py", line 1841, in encode_loop
    fn_and_args[0](*fn_and_args[1:])
  File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 1323, in make_data_packet_cb
    packet = self.make_data_packet(damage_time, process_damage_time, wid, image, coding, sequence, options, flush)
  File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 1616, in make_data_packet
    mmap_data = mmap_send(self._mmap, self._mmap_size, image, self.rgb_formats, self.supports_transparency)
  File "/usr/lib64/python2.7/site-packages/xpra/server/picture_encode.py", line 270, in mmap_send
    mmap_data, mmap_free_size = mmap_write(mmap, mmap_size, data)
  File "/usr/lib64/python2.7/site-packages/xpra/net/mmap_pipe.py", line 177, in mmap_write
    mmap_data_start = int_from_buffer(mmap_area, 0)
  File "/usr/lib64/python2.7/site-packages/xpra/net/mmap_pipe.py", line 136, in int_from_buffer
    return ctypes.c_uint32.from_buffer(mmap_area, pos)      #@UndefinedVariable
TypeError: expected a single-segment buffer object

This is equivalent to a dead socket, and should be treated as such, skipping the stacktrace.

Change History (1)

comment:1 Changed 4 years ago by Antoine Martin

Resolution: fixed
Status: newclosed
Summary: mmap error when client stops abruptly with lots of trafficmmap error when the server stops abruptly with lots of traffic

Was fairly easy to trigger using control-c to stop the server under high load.

Fix in r10244, will backport.

Note: See TracTickets for help on using tickets.