1. 24 May, 2019 1 commit
  2. 23 May, 2019 3 commits
    • Milan Crha's avatar
      Expose E-Book/Cal-BackendSExp lock · 9f412c48
      Milan Crha authored
      The ECalBackendSExp usage could cause a deadlock when one thread
      had been starting the view, while another thread had been notifying
      existing views about created/modified/removed objects with the file
      backend, which uses its internal lock within tzcache_get_timezone()
      function. Exposing the Backend SExp lock into the public and locking
      it before starting the view helps to avoid this deadlock.
      Similar lock had been added to the EBookBackendSExp too.
      
      The backtrace of the two threads follows:
      
      Thread 2 (Thread 0x7f4735fab700 (LWP 11567)):
      0  in syscall () at /lib64/libc.so.6
      1  in g_mutex_lock_slowpath () at /lib64/libglib-2.0.so.0
      2  in e_cal_backend_sexp_match_comp (sexp=0x7f47c80682a0, comp=comp@entry=0x7f47c0018920, cache=0x2c65b00)
          at ..../src/calendar/libedata-cal/e-cal-backend-sexp.c
      3  in match_object_sexp_to_component (value=0x7f47c0018920, data=0x7f4735faab40)
          at ..../src/calendar/backends/file/e-cal-backend-file.c
      4  in g_list_foreach () at /lib64/libglib-2.0.so.0
      5  in e_cal_backend_file_start_view (backend=0x2c65b00, query=0x7f477c01a5b0)
          at ..../src/calendar/backends/file/e-cal-backend-file.c
      6  in calview_start_thread (data=0x7f477c01a5b0)
          at ..../src/calendar/libedata-cal/e-data-cal-view.c
      7  in g_thread_proxy () at /lib64/libglib-2.0.so.0
      8  in start_thread () at /lib64/libpthread.so.0
      9  in clone () at /lib64/libc.so.6
      
      Thread 1 (Thread 0x7f4820dcba80 (LWP 5054)):
      0  in __lll_lock_wait () at /lib64/libpthread.so.0
      1  in _L_lock_941 () at /lib64/libpthread.so.0
      2  in pthread_mutex_lock () at /lib64/libpthread.so.0
      3  in cal_backend_file_get_cached_timezone (cache=0x2c65b00, tzid=0x2cbc790 "America/New_York")
          at ..../src/calendar/backends/file/e-cal-backend-file.c
      4  in func_occur_in_time_range (user_data=0x2cbab10, tzid=<optimized out>)
          at ..../src/calendar/libedata-cal/e-cal-backend-sexp.c
      5  in func_occur_in_time_range (esexp=0x2c4e100, argc=<optimized out>, argv=<optimized out>, data=0x2cbab10)
          at ..../src/calendar/libedata-cal/e-cal-backend-sexp.c
      6  in e_sexp_term_eval (sexp=sexp@entry=0x2c4e100, t=0x2c4a400)
          at ..../src/libedataserver/e-sexp.c
      7  in e_sexp_eval (sexp=0x2c4e100)
          at ..../src/libedataserver/e-sexp.c
      8  in e_cal_backend_sexp_match_comp (sexp=0x7f47c80682a0, comp=comp@entry=0x7f47c0018f20, cache=<optimized out>)
          at ..../src/calendar/libedata-cal/e-cal-backend-sexp.c
      9  in e_data_cal_view_component_matches (view=view@entry=0x7f477c01a5b0, component=component@entry=0x7f47c0018f20)
          at ..../src/calendar/libedata-cal/e-data-cal-view.c
      10 in e_cal_backend_notify_component_created (backend=<optimized out>, component=0x7f47c0018f20)
          at ..../src/calendar/libedata-cal/e-cal-backend.c
      11 in e_cal_backend_create_objects_finish (backend=0x2c65b00, result=result@entry=0x7f47f80648a0, out_uids=out_uids@entry=0x7fff7bd8d200, error=error@entry=0x7fff7bd8d1f8)
          at ..../src/calendar/libedata-cal/e-cal-backend.c
      12 in data_cal_complete_create_objects_cb (source_object=0x2c65b00, result=0x7f47f80648a0, user_data=0x2c31d80)
          at ..../src/calendar/libedata-cal/e-data-cal.c
      13 in g_simple_async_result_complete () at /lib64/libgio-2.0.so.0
      14 in complete_in_idle_cb () at /lib64/libgio-2.0.so.0
      15 in g_idle_dispatch () at /lib64/libglib-2.0.so.0
      16 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
      17 in g_main_context_iterate.isra.19 () at /lib64/libglib-2.0.so.0
      18 in g_main_loop_run () at /lib64/libglib-2.0.so.0
      19 in main (argc=1, argv=0x7fff7bd8d518)
          at ..../src/calendar/libedata-cal/evolution-calendar-factory-subprocess.c
      9f412c48
    • Milan Crha's avatar
      Add workaround for D-Bus property change into get-revision tests · 1be2a367
      Milan Crha authored
      Even with the previous commit there still could happen some issue
      with D-Bus property change notifications, thus add a workaround to
      the related book and calendar tests, because it's not a problem
      on the evolution-data-server side, but somewhere deeper.
      1be2a367
    • Milan Crha's avatar
      EDataBook/EDataCal: Flush GDBus connection on backend property change · 76000273
      Milan Crha authored
      This should make sure the client side will receive property changes
      as soon as possible.
      76000273
  3. 22 May, 2019 1 commit
  4. 21 May, 2019 2 commits
  5. 20 May, 2019 4 commits
  6. 18 May, 2019 1 commit
  7. 17 May, 2019 5 commits
  8. 14 May, 2019 1 commit
  9. 13 May, 2019 1 commit
  10. 11 May, 2019 1 commit
  11. 09 May, 2019 1 commit
  12. 07 May, 2019 2 commits
  13. 06 May, 2019 2 commits
  14. 30 Apr, 2019 1 commit
  15. 29 Apr, 2019 1 commit
    • Milan Crha's avatar
      [EWebDAVDiscover] Prevent crash on GError use in gio functions · cd643b8d
      Milan Crha authored
      When the server returns invalid address and the call fails then
      the wdd->error could be set. Retrying another href with this set
      error can be caught by gio's assertions like this:
      
      GLib-Net:ERROR:../tls/gnutls/gtlsconnection-gnutls.c:910:end_gnutls_io: assertion failed: (!error || !*error)
      cd643b8d
  16. 26 Apr, 2019 2 commits
  17. 23 Apr, 2019 3 commits
  18. 22 Apr, 2019 2 commits
  19. 18 Apr, 2019 1 commit
  20. 12 Apr, 2019 2 commits
  21. 09 Apr, 2019 1 commit
  22. 29 Mar, 2019 2 commits