Changes between Version 2 and Version 3 of helgrind


Ignore:
Timestamp:
Jan 14, 2020 5:37:40 AM (5 years ago)
Author:
ming
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • helgrind

    v2 v3  
    106106}}} 
    107107 
    108 3. Pulse Audio related[[br]] 
    109   Status: outside PJSIP's scope[[br]] 
    110   TODO: create a suppression file for this 
    111  
    112 {{{ 
    113 ==26641== Possible data race during read of size 4 at 0x6CEBC28 by thread #1 
    114 ==26641== Locks held: none 
    115 ==26641==    at 0x6AB5FE1: pa_once_begin (in 
    116 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so) 
    117 ==26641==    by 0x6AB616A: pa_run_once (in 
    118 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so) 
    119 ==26641==    by 0x6ACAE43: pa_thread_self (in 
    120 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so) 
    121 ==26641==    by 0x666146B: pa_threaded_mainloop_lock (in 
    122 /usr/lib/x86_64-linux-gnu/libpulse.so.0.16.2) 
    123 ==26641==    by 0x8F573AF: pulse_connect (in 
    124 /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so) 
    125 ==26641==    by 0x8F56C9B: _snd_pcm_pulse_open (in 
    126 /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so) 
    127 ==26641==    by 0x55B36FC: ??? (in /usr/lib/x86_64-linux-gnu/libasound.so.2.0.0) 
    128 ==26641==    by 0x55B3CF5: ??? (in /usr/lib/x86_64-linux-gnu/libasound.so.2.0.0) 
    129 ==26641==    by 0x559982: OpenPcm (pa_linux_alsa.c:544) 
    130 ==26641==    by 0x559A34: FillInDevInfo (pa_linux_alsa.c:580) 
    131 ==26641==    by 0x55A9B8: BuildDeviceList (pa_linux_alsa.c:853) 
    132 ==26641==    by 0x558E8B: PaAlsa_Initialize (pa_linux_alsa.c:266) 
    133 ==26641== 
    134 ==26641== This conflicts with a previous write of size 4 by thread #2 
    135 ==26641== Locks held: 1, at address 0x5E41130 
    136 ==26641==    at 0x6AB6093: pa_once_end (in 
    137 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so) 
    138 ==26641==    by 0x6ACAEEC: ??? (in 
    139 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so) 
    140 ==26641==    by 0x4C30E26: mythread_wrapper (hg_intercepts.c:233) 
    141 ==26641==    by 0x5353181: start_thread (pthread_create.c:312) 
    142 ==26641==    by 0x595400C: clone (clone.S:111) 
    143 }}} 
    144  
    145 4. Data race over access to g_last_thread variable. 
     1083. Data race over access to g_last_thread variable. 
    146109Status: won't fix. The variable is only used for information purpose only, while mutex locking for logging will be quite expensive. 
    147110 
     
    200163}}} 
    201164 
    202 5. Data race over cp->used_size variable in pool_caching. 
     1654. Data race over cp->used_size variable in pool_caching. 
    203166Status: won't fix, the variable is for statistics purpose only. 
    204167 
     
    241204}}} 
    242205 
    243 6. Data race over tcp->pending_connect variable[[br]] 
    244 Status: should be safe. A modification to suppress this would be desirable. 
     2065. Data race over tcp->has_pending_connect variable[[br]] 
     207Status: intentional. For optimisation, we intentionally check if has_pending_connect is true before holding the lock and checking the variable again. 
    245208 
    246209{{{ 
     
    329292}}} 
    330293 
    331 7. Destroying a locked mutex in sip dialog 
     2946. Destroying a locked mutex in sip dialog 
    332295Status: won't fix. When calling pj_mutex_destroy() there is actually no requirement that the mutex should be unlocked. If the mutex destroy fails, pj_mutex_destroy() will automatically retry several times by unlocking the mutex first. 
    333296{{{