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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Anand Avati <anand.avati@xxxxxxxxx> 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@xxxxxxxxxx



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux