Gilad,
the code seems not very clean to me. One would have to check whether
it is more efficient to first stat the directory.
Just to be sure: this also happens with 3.0.2 and before?
Thanks
Martin
--- Gilad Raphaelli <[EMAIL PROTECTED]> wrote:
> Bernard,
>
> The failed directories are the ones to hold the rrds for each
> individual host like 'ganglia/grid/rrds/cluster/host/' and
> 'ganglia/grid/rrds/cluster/__SummaryInfo__/'
>
> This seems normal based on rrd_helpers.c where:
>
> my_mkdir ( const char *dir )
> {
> pthread_mutex_lock( &rrd_mutex );
> if ( mkdir ( dir, 0755 ) < 0 && errno != EEXIST)
> {
> pthread_mutex_unlock(&rrd_mutex);
> err_sys("Unable to mkdir(%s)",dir);
> }
> pthread_mutex_unlock( &rrd_mutex );
> }
>
> I assume that this is more efficient then checking for directory
> existence and then conditionally creating it. A smaller setup on the
> same box also has the 'gmetad RET mkdir -1 errno 17 File exists'
> in ktrace but not on scale where it is noticeable.
>
> Please let me know if you would like any additional information.
>
> Gil
>
------------------------------------------------------
Martin Knoblauch
email: k n o b i AT knobisoft DOT de
www: http://www.knobisoft.de