synergys segv on paste into chrome's address bar

Bug #908578 reported by Dave Gilbert
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
synergy (Ubuntu)
Fix Released
High
Unassigned

Bug Description

This seems to be a regression in the last few days on Precise.

I have two machines; a host (major) that runs synergys, in Kubuntu precise, and the chrome web browser.
The other machine (davros) runs synergyc; if I cut and paste from davros to chrome's address bar on major synergys segs, repeatably.

ii synergy 1.3.8-1 Share mouse, keyboard and clipboard over the network

Here is a full bt:

(gdb) bt full
#0 __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = 0
#1 0x000000000044103c in CArchMultithreadPosix::lockMutex (this=<optimized out>, mutex=<optimized out>)
    at /build/buildd/synergy-1.3.8/src/lib/arch/CArchMultithreadPosix.cpp:296
        status = <optimized out>
#2 0x000000000044042c in IArchString::convStringWCToMB (this=<optimized out>, dst=0x0, src=0x7ffff003a850 L"christmas", n=9,
    errors=0x7fffffffd62f) at /build/buildd/synergy-1.3.8/src/lib/arch/IArchString.cpp:50
        len = 0
        dummyErrors = false
#3 0x0000000000491bac in CUnicode::UTF8ToText (src=<optimized out>, errors=0x0)
    at /build/buildd/synergy-1.3.8/src/lib/base/CUnicode.cpp:241
        tmp = 0x7ffff003a850 L"christmas"
        len = <optimized out>
        size = 9
        mbs = <optimized out>
        text = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
            _M_p = 0x7fffffffd72e ""}}
#4 0x000000000045d9be in CXWindowsClipboardTextConverter::fromIClipboard (this=<optimized out>, data=<optimized out>)
    at /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsClipboardTextConverter.cpp:58
No locals.
#5 0x000000000045bfeb in CXWindowsClipboard::addSimpleRequest (this=0x6f39d0, requestor=121761784, target=549, time=15206095, property=511)
    at /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsClipboard.cpp:179
        clipboardFormat = <optimized out>
        converter = 0x6f3c20
---Type <return> to continue, or q <return> to quit---
        data = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
            _M_p = 0x6c6318 ""}}
        type = 0
        format = 0
#6 0x000000000045c54b in CXWindowsClipboard::addRequest (this=0x6f39d0, owner=<optimized out>, requestor=121761784, target=549,
    time=15206095, property=511) at /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsClipboard.cpp:131
        success = false
#7 0x0000000000453945 in CXWindowsScreen::handleSystemEvent (this=0x6c8c70, event=<optimized out>)
    at /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsScreen.cpp:1311
        id = <optimized out>
        xevent = 0x6f3d08
        __PRETTY_FUNCTION__ = "virtual void CXWindowsScreen::handleSystemEvent(const CEvent&, void*)"
        isRepeat = false
#8 0x0000000000444b85 in CEventQueue::dispatchEvent (this=0x7fffffffd9d0, event=...)
    at /build/buildd/synergy-1.3.8/src/lib/base/CEventQueue.cpp:193
        target = 0x6c64d0
        job = <optimized out>
#9 0x000000000043d606 in mainLoop () at /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp:729
        multiplexer = {m_mutex = 0x6c7b70, m_thread = 0x6c8630, m_update = false, m_jobsReady = 0x6c8590, m_jobListLock = 0x6c85b0,
          m_jobListLockLocked = 0x6c85d0, m_jobListLocker = 0x6f4dc0, m_jobListLockLocker = 0x0,
          m_socketJobs = {<std::_List_base<ISocketMultiplexerJob*, std::allocator<ISocketMultiplexerJob*> >> = {
              _M_impl = {<std::allocator<std::_List_node<ISocketMultiplexerJob*> >> = {<__gnu_cxx::new_allocator<std::_List_node<ISocketMultiplexerJob*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x6f4360, _M_prev = 0x7ffff00397d0}}}, <No data fields>},
          m_socketJobMap = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<ISocket* const, std::_List_iterator<ISocketMultiplexerJob*> > > >> = {<---Type <return> to continue, or q <return> to quit---
__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<ISocket* const, std::_List_iterator<ISocketMultiplexerJob*> > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<ISocket*, ISocket*, bool>> = {<No data fields>}, <No data fields>},
                _M_header = {_M_color = std::_S_red, _M_parent = 0x7ffff0039950, _M_left = 0x7ffff00399d0, _M_right = 0x7ffff0039950},
                _M_node_count = 2}}}, m_cursorMark = 0x7fffffffdb10, static s_instance = 0x7fffffffdb10}
        primaryName = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
            _M_p = 0x6c7968 "major"}}
        eventQueue = {<IEventQueue> = {<IInterface> = {_vptr.IInterface = 0x498390}, static s_instance = 0x7fffffffd9d0},
          m_mutex = 0x6ca8a0, m_nextType = 44, m_typeMap = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, char const*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, char const*> > >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>},
                _M_header = {_M_color = std::_S_red, _M_parent = 0x7ffff0000c20, _M_left = 0x6c8bf0, _M_right = 0x7ffff003a4b0},
                _M_node_count = 40}}}, m_buffer = 0x6f3ce0, m_events = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CEvent> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CEvent> > >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>},
                _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x7fffffffda28, _M_right = 0x7fffffffda28},
                _M_node_count = 0}}}, m_oldEventIDs = {<std::_Vector_base<unsigned int, std::allocator<unsigned int> >> = {
              _M_impl = {<std::allocator<unsigned int>> = {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data fields>}, _M_start = 0x6f5190, _M_finish = 0x6f5220, _M_end_of_storage = 0x6f5290}}, <No data fields>}, m_time = {m_mark = 1324830542.1422811,
            m_triggered = false, m_stopped = false}, m_timers = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<CEventQueueTimer*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<CEventQueueTimer*> >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<CEventQueueTimer*, CEventQueueTimer*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x7ffff003a5b0, _M_left = 0x7ffff0039c80, _M_right = 0x7ffff003a5b0},
---Type <return> to continue, or q <return> to quit---
                _M_node_count = 2}}}, m_timerQueue = {
            c = {<std::_Vector_base<CEventQueue::CTimer, std::allocator<CEventQueue::CTimer> >> = {
                _M_impl = {<std::allocator<CEventQueue::CTimer>> = {<__gnu_cxx::new_allocator<CEventQueue::CTimer>> = {<No data fields>}, <No data fields>}, _M_start = 0x7ffff003a7a0, _M_finish = 0x7ffff003a7f0, _M_end_of_storage = 0x7ffff003a840}}, <No data fields>},
            comp = {<std::binary_function<CEventQueue::CTimer, CEventQueue::CTimer, bool>> = {<No data fields>}, <No data fields>}},
          m_timerEvent = {m_timer = 0x7ffff003a060, m_count = 1}, m_handlers = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<void* const, std::map<unsigned int, IEventJob*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, IEventJob*> > > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<void* const, std::map<unsigned int, IEventJob*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, IEventJob*> > > > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<void*, void*, bool>> = {<No data fields>}, <No data fields>},
                _M_header = {_M_color = std::_S_red, _M_parent = 0x6f4510, _M_left = 0x6f3c40, _M_right = 0x7ffff003a300},
                _M_node_count = 13}}}}
        fileLog = 0x0
        event = {m_type = 2, m_target = 0x6c64d0, m_data = 0x6f3d08, m_flags = 0}
#10 0x000000000043db8d in standardStartup (argc=<optimized out>, argv=<optimized out>)
    at /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp:781
No locals.
#11 0x000000000043a684 in run (argv=0x7fffffffe088, argc=4, outputter=<optimized out>, startup=<optimized out>)
    at /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp:808
        logBuffer = {<ILogOutputter> = {<IInterface> = {_vptr.IInterface = 0x498e30}, <No data fields>}, m_maxBufferSize = 1000,
          m_buffer = {<std::_Deque_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
              _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_map = 0x6c7460,
                _M_map_size = 8, _M_start = {_M_cur = 0x6c74b0, _M_first = 0x6c74b0, _M_last = 0x6c76b0, _M_node = 0x6c7478}, _M_finish = {
                  _M_cur = 0x6c7638, _M_first = 0x6c74b0, _M_last = 0x6c76b0, _M_node = 0x6c7478}}}, <No data fields>}}
---Type <return> to continue, or q <return> to quit---
        result = <optimized out>
        startup = 0x43d7e0 <standardStartup(int, char**)>
        outputter = 0x0
#12 main (argc=4, argv=0x7fffffffe088) at /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp:1351
        result = 7107440
        arch = {<IArchConsole> = {<IInterface> = {_vptr.IInterface = 0x495210}, <No data fields>}, <IArchDaemon> = {<IInterface> = {
              _vptr.IInterface = 0x4954b0}, <No data fields>}, <IArchFile> = {<IInterface> = {
              _vptr.IInterface = 0x4954f8}, <No data fields>}, <IArchLog> = {<IInterface> = {
              _vptr.IInterface = 0x495538}, <No data fields>}, <IArchMultithread> = {<IInterface> = {
              _vptr.IInterface = 0x495578}, <No data fields>}, <IArchNetwork> = {<IInterface> = {
              _vptr.IInterface = 0x495650}, <No data fields>}, <IArchSleep> = {<IInterface> = {
              _vptr.IInterface = 0x495750}, <No data fields>}, <IArchString> = {<IInterface> = {
              _vptr.IInterface = 0x495778}, <No data fields>}, <IArchSystem> = {<IInterface> = {
              _vptr.IInterface = 0x4957b8}, <No data fields>}, <IArchTaskBar> = {<IInterface> = {
              _vptr.IInterface = 0x4957e8}, <No data fields>}, <IArchTime> = {<IInterface> = {
              _vptr.IInterface = 0x495820}, <No data fields>}, static s_instance = 0x7fffffffddb0, m_console = 0x6c7240,
          m_daemon = 0x6c7260, m_file = 0x6c7150, m_log = 0x6c7170, m_mt = 0x6c7010, m_net = 0x6c7190, m_sleep = 0x6c71e0,
          m_string = 0x6c7200, m_system = 0x6c7130, m_taskbar = 0x6c7280, m_time = 0x6c7220}
        args = {static s_instance = 0x7fffffffdf10, m_pname = 0x7fffffffe3bf "synergys", m_backend = false, m_restartable = true,
          m_daemon = false, m_configFile = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x6c7768 ".quicksynergy/synergy.conf"}}, m_logFilter = 0x0, m_logFile = 0x0, m_display = 0x0, m_name = {
            static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x6c7738 "major"}}, m_synergyAddress = 0x6c7350, m_config = 0x6c7370, m_disableXInitThreads = false}
        args = {static s_instance = 0x7fffffffdf10, m_pname = 0x0, m_backend = false, m_restartable = true, m_daemon = true,
---Type <return> to continue, or q <return> to quit---
          m_configFile = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x6c6318 ""}}, m_logFilter = 0x0, m_logFile = 0x0, m_display = 0x0, m_name = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x6c6318 ""}}, m_synergyAddress = 0x0, m_config = 0x0, m_disableXInitThreads = false}

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: synergy 1.3.8-1
ProcVersionSignature: Ubuntu 3.2.0-6.12-generic 3.2.0-rc6
Uname: Linux 3.2.0-6-generic x86_64
ApportVersion: 1.90-0ubuntu1
Architecture: amd64
CheckboxSubmission: f2d10bd9f943a85b486a282e7840a570
CheckboxSystem: 0531969bcfd4f03af7405c98dc94a948
Date: Sun Dec 25 16:30:14 2011
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
ProcEnviron:
 LANGUAGE=
 PATH=(custom, user)
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SourcePackage: synergy
UpgradeStatus: Upgraded to precise on 2011-12-03 (21 days ago)

Related branches

Revision history for this message
Dave Gilbert (ubuntu-treblig) wrote :
Revision history for this message
Dave Gilbert (ubuntu-treblig) wrote :

I think this is upstream bug 3066: http://synergy-foss.org/tracker/issues/3066

I just added a patch to there that seems to work here.

Revision history for this message
Dave Gilbert (ubuntu-treblig) wrote :

Actually, I see the same bug was fixed in bug 3063; here http://synergy-foss.org/tracker/issues/3063

tags: added: fixed-upstream regression-release
Revision history for this message
Jeff Licquia (jeff-licquia) wrote :
Andreas Moog (ampelbein)
Changed in synergy (Ubuntu):
importance: Undecided → High
status: New → Triaged
status: Triaged → In Progress
assignee: nobody → Andreas Moog (amoog)
Andreas Moog (ampelbein)
Changed in synergy (Ubuntu):
assignee: Andreas Moog (amoog) → nobody
status: In Progress → Triaged
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package synergy - 1.3.8-1ubuntu1

---------------
synergy (1.3.8-1ubuntu1) precise; urgency=low

  * Import Feng Ye's patch from
    http://synergy-foss.org/tracker/issues/3043 as a fix for upstream 3063
    (original patcher in 3063 agreed 3043 fix was better, although the fix in
    3063 is currently in upstream). LP: #908578
 -- <email address hidden> (Dr. David Alan Gilbert) Mon, 26 Dec 2011 09:51:48 +0100

Changed in synergy (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.