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]

 



Yes! I was catching up slowly on all my mail.. I will commit this fix. Thanks!

Avati

On Fri, Jul 8, 2011 at 8:36 PM, Emmanuel Dreyfus <manu@xxxxxxxxxx> wrote:
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