Comment 18 for bug 932627

Revision history for this message
Chris Goller (goller) wrote : Re: nautilus crashes when opening any folder or file

I think I've tracked it down...

http://ftp.gnome.org/pub/gnome/sources/glib/2.31/glib-2.31.18.news

glib did this change
 * g_async_queue_timed_pop has been deprecated in favor of
  the new g_async_queue_timeout_pop, which uses relative
  delays in microseconds instead of a GTimeVal.

and the exact change in g_async_queue_timed_pop

+ if (end_time != NULL)
+ {
+ m_end_time = g_get_monotonic_time () +
+ (end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec -
+ g_get_real_time ());
+ }
+ else
+ m_end_time = -1;
+

end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec - g_get_real_time () returns a value far less than 0 and it causes
the m_end_time to be less than 0.

Therefore, this sets m_end_time to negative creating an invalid argument to be passed to pthread_cond_wait.

I think just casting end_time->tv_sec to gint64 is all that is needed.