[Gluster-devel] post 3.1 xlator/io-threads instability on NetBSD (was: NULL frame->conn cause a crash)

Emmanuel Dreyfus manu at netbsd.org
Fri Jul 8 15:06:48 UTC 2011


Anand Avati <anand.avati at gmail.com> wrote:

> I'm not sure how good/efficient the pthread implementation in NetBSD is.
> Also, do you know if there are any NetBSD specifics about using
> pthread_spinlock() APIs on it? Lot of the issues you have previously
> described can occur if there is a broken implementation of pthread
> spinlocks (which seems to get masked without io-threads)

Yes, all the crashes I reported were pthread related and were fixed by
the patch I posted yesterday. I repost it below for your convenience. 

On the NetBSD specific issue, well, I would rather call that a
Linux-specificity that your code managed to run :-) 

The only problem I have now is the "files exist but readdir do not see
them" thing I have posted about this morning, but this is not a crash
story. 


--- xlators/performance/io-threads/src/io-threads.c.orig
+++ xlators/performance/io-threads/src/io-threads.c
@@ -2181,8 +2181,20 @@
                         "out of memory");
                 goto out;
         }
 
+       if ((ret = pthread_cond_init(&conf->cond, NULL)) != 0) {
+                gf_log (this->name, GF_LOG_ERROR,
+                        "pthread_cond_init failed (%d)", ret);
+                goto out;
+       }
+
+       if ((ret = pthread_mutex_init(&conf->mutex, NULL)) != 0) {
+                gf_log (this->name, GF_LOG_ERROR,
+                        "pthread_mutex_init failed (%d)", ret);
+                goto out;
+       }
+
         set_stack_size (conf);
 
         thread_count = IOT_DEFAULT_THREADS;
 



-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org




More information about the Gluster-devel mailing list