[ofa-general] Re: Error message in OSM log when cached op file doesn't exist
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Tue May 15 04:23:17 PDT 2007
Hi Sasha,
Sasha Khapyorsky wrote:
> Hi Yevgeny,
>
> On 17:07 Mon 14 May , Yevgeny Kliteynik wrote:
>> I actually don't like this thing, because now every time you run
>> OpenSM on the machine that doesn't have any cached options file
>> (which is usually the case) you get an error message.
>>
>> There's no point checking whether the file exists, because osm runs
>> as root,
>
> Not necessary.
>
>> and if it fails opening this file, it means that the file
>> doesn't exist or is inaccessible (broken mount, etc).
>
> or user provided OSM_CACHE_DIR environment variable is broken or malloc
> failed, or other error (see: man 3 fopen, man 2 open, man 3 malloc)
>
> Probably just this solves your issue:
>
> diff --git a/osm/opensm/osm_subnet.c b/osm/opensm/osm_subnet.c
> index 855d1ab..f7ddf7d 100644
> --- a/osm/opensm/osm_subnet.c
> +++ b/osm/opensm/osm_subnet.c
> @@ -51,6 +51,7 @@
>
> #include <string.h>
> #include <stdio.h>
> +#include <errno.h>
> #include <limits.h>
> #include <complib/cl_debug.h>
> #include <complib/cl_log.h>
> @@ -856,7 +857,7 @@ osm_subn_parse_conf_file(
>
> opts_file = fopen(file_name, "r");
> if (!opts_file)
> - return IB_ERROR;
> + return errno == ENOENT ? IB_SUCCESS : IB_ERROR;
>
> while (fgets(line, 1023, opts_file) != NULL)
> {
I think that this one is a good solution.
-- Yevgeny
> Or yet another IB_* status value and less aggressive warning message?
>
> Sasha
>
More information about the general
mailing list