Re: global_init fails when only specifying monitor address

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



There's no technical reason why you can't simply remove these lines:

>  if (ret == -EDOM) {
>    dout_emergency("global_init: error parsing config file.\n");
>    _exit(1);
>  }

Without a configuration file, you'll just get the defaults for
everything.  Wido, it sounds like that is what you're already doing by
passing in "-c /dev/null"

So why didn't we do that in the first place?  It was basically a
philosophical reason.  We have a section in the configuration file for
clients.  If clients don't use that section, then it would seem kind
of pointless to have it.  If I were a system administrator, I might be
annoyed by accidentally failing to set CEPH_CONF in my .bashrc, and
getting a bunch of defaults flooding in when I ran /usr/bin/ceph (or
some other tool).

With that being said, there is a case to be made that we should let
people run without a configuration file if they so desire.  Most UNIX
utilities will run with out without a configuration file, so maybe
that's what cephtool and similar utilities should do.  Your call.


Unrelated:
It might be a good time to get rid of that chunk of code in
md_config_t::parse_config_files_impl that does "Warn about section
names that look like old-style section names."  It's been a while
since that actually mattered, I believe.

Colin


On Thu, Apr 26, 2012 at 9:33 AM, Sage Weil <sage@xxxxxxxxxxxx> wrote:
> On Thu, 26 Apr 2012, Wido den Hollander wrote:
>> Hi,
>>
>> I tried to connect to a small Ceph setup on my desktop without cephx and that
>> failed:
>>
>> root@stack01:~# ceph -m wido-desktop.widodh.nl:6789 -s
>> global_init: unable to open config file.
>> root@stack01:~#
>>
>> I however worked with:
>>
>> root@stack01:~# ceph -m wido-desktop.widodh.nl:6789 -c /dev/null -s
>> 2012-04-26 14:55:33.828524    pg v148: 594 pgs: 594 active+clean; 0 bytes
>> data, 7740 KB used, 70571 MB / 76800 MB avail
>> 2012-04-26 14:55:33.829622   mds e1: 0/0/1 up
>> 2012-04-26 14:55:33.836144   osd e14: 3 osds: 3 up, 3 in
>> 2012-04-26 14:55:33.886429   log 2012-04-26 14:52:50.674430 osd.1
>> [2a00:f10:11c:ab:52e5:49ff:fec2:c976]:6807/28366 12 : [INF] 1.2b scrub ok
>> 2012-04-26 14:55:33.892423   mon e1: 1 mons at
>> {desktop=[2a00:f10:11c:ab:52e5:49ff:fec2:c976]:6789/0}
>> root@stack01:~#
>>
>> I quick look at global_init.cc showed me why this happened, it simply looks
>> for a configuration file to open and when it can't it fails.
>>
>> But if a monitor address is set, a config file shouldn't be mandatory.
>>
>> It could be accomplished rather simple by setting the flag
>> CINIT_FLAG_NO_DEFAULT_CONFIG_FILE if a mon_host has been set, but to do that
>> conf->parse_argv(args); should move a few lines up.
>>
>> Comments? Thoughts?
>
> I wonder if the simplest thing to do is:
>
>  - never error out on missing config in the default search path
>  - always error out on missing config if it was explicitly specified via
>   -c foo or CEPH_CONF in environment.
>
> ?
>
> sage
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[CEPH Users]     [Information on CEPH]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [XFree86]

Add to Google Powered by Linux