I added a site-local feature to Ganesha that is enabled by a command line option. It's
one of my functions that's trying to log.
On 7/24/20, 8:51 AM, "Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC] via Devel"
<devel(a)lists.nfs-ganesha.org> wrote:
The call that initiated the segfault happens during command line processing.
On 7/24/20, 8:48 AM, "Daniel Gryniewicz" <dang(a)redhat.com> wrote:
Oh, wait. That's not an empty list, it's an uninitialized list.
Something is trying to log before init_logging() has been called, which,
of course, won't work. That's called *super* early in startup (right
after command line arguments are parsed), so it should be easy to avoid
logging that early.
Daniel
On 7/24/20 11:16 AM, Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC] wrote:
I noticed that 1) this takes place very early in the starting of
ganesha.nfsd, and 2) there's nothing in the log file yet, so perhaps logging
hasn't been set up yet?
-Jeff
On 7/24/20, 8:07 AM, "Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC] via Devel"
<devel(a)lists.nfs-ganesha.org> wrote:
But it does enter the loop and tries to dereference a bad pointer
On 7/24/20, 5:41 AM, "Daniel Gryniewicz" <dang(a)redhat.com> wrote:
So, that shouldn't cause a crash. glist_for_each() is valid on an empty
list, and it will never enter the loop, so it should just skip the
entire block.
That said, your config looked like it had a valid facility, so there
should be an entry in that list.
Daniel
On 7/23/20 5:44 PM, Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC] wrote:
> I think I found the problem below - please advise. Thanks.
>
> -Jeff
>
> (gdb) c
> Continuing.
>
> Breakpoint 3, display_log_component_level (component=COMPONENT_NFS_V4,
> file=0x2aaaaae4d5d8
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c", line=517,
function=0x2aaaaae4d7d8 <__func__.18796> "um_load",
> level=NIV_WARN, format=0x2aaaaae4d7b9 "Invalid map: %s:
%s",
> arguments=0x7fffffff3848)
> at
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1516
> 1516 glist_for_each(glist, &active_facility_list) {
> (gdb) p glist
> $2 = (struct glist_head *) 0x0
> (gdb) p active_facility_list
> $3 = {next = 0x0, prev = 0x0}
>
> On 7/23/20, 7:46 AM, "Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC]"
<jeffrey.c.becker(a)nasa.gov> wrote:
>
> Except for specifying the conf file I provided, there are no log
related arguments on the command line. I'll continue poking in gdb to see if I can pin
down the segfault more. Thanks.
>
> -Jeff
>
> On 7/23/20, 5:40 AM, "Daniel Gryniewicz"
<dang(a)redhat.com> wrote:
>
> Sorry, I thought I'd replied. I don't see anything wrong.
Are you
> specifying anythign log related on the command line?
>
> Frank, any ideas?
>
> Daniel
>
> On 7/21/20 3:06 PM, Becker, Jeffrey C. (ARC-TN)[InuTeq, LLC] via
Devel
> wrote:
> > Do you see anything wrong? Any tests to try? Thanks.
> >
> > -Jeff
> >
> > On 7/20/20, 7:55 AM, "Becker, Jeffrey C.
(ARC-TN)[InuTeq, LLC]" <jeffrey.c.becker(a)nasa.gov> wrote:
> >
> > Config below. Thanks.
> >
> > -Jeff
> >
> > On 7/20/20, 5:26 AM, "Daniel Gryniewicz"
<dang(a)redhat.com> wrote:
> >
> > It looks like you have a bad facility in the
active_facility_list? I'm
> > not sure how this could happen, though. What's
your config?
> >
> > jcbecker@pfe26 501$ cat
/nobackupnfs2/jcbecker/reexporter/ganesha.conf
> > ###################################################
> > #
> > # Ganesha Config Example
> > #
> > # This is a commented example configuration file for
Ganesha. It is not
> > # complete, but only has some common configuration
options. See the man pages
> > # for complete documentation.
> > #
> > ###################################################
> >
> > ## These are core parameters that affect Ganesha as a
whole.
> > NFS_CORE_PARAM {
> > ## Allow NFSv3 to mount paths with the Pseudo path, the
same as NFSv4,
> > ## instead of using the physical paths.
> > mount_path_pseudo = true;
> >
> > ## Configure the protocols that Ganesha will listen
for. This is a hard
> > ## limit, as this list determines which sockets are
opened. This list
> > ## can be restricted per export, but cannot be
expanded.
> > Protocols = 4;
> > }
> >
> > ## Configure NFSv4
> > NFSv4 {
> > Allow_Numeric_Owners = true;
> > Only_Numeric_Owners = true;
> > }
> >
> > ## These are defaults for exports. They can be
overridden per-export.
> > ## EXPORT_DEFAULTS {
> > ## Access type for clients. Default is None, so some
access must be
> > ## given either here or in the export itself.
> > ## Access_Type = RW;
> > ## }
> >
> > ## Configure settings for the object handle cache
> > CACHEINODE {
> > ## The point at which object cache entries will start
being reused.
> > Entries_HWMark = 100000;
> > }
> >
> > ## Configure exports
> > EXPORT
> > {
> > ## Export Id (mandatory, each EXPORT must have a unique
Export_Id)
> > Export_Id = 2222;
> >
> > ## Exported path (mandatory)
> > Path = /nobackupp2/bvillal2/quantum/public;
> >
> > ## Pseudo Path (required for NFSv4 or if
mount_path_pseudo = true)
> > Pseudo = /quail;
> >
> > ## Restrict the protocols that may use this export.
This cannot allow
> > ## access that is denied in NFS_CORE_PARAM.
> > #Protocols = 3,4;
> >
> > ## Access type for clients. Default is None, so some
access must be
> > ## given. It can be here, in the EXPORT_DEFAULTS, or in
a CLIENT block
> > Access_Type = RW;
> >
> > ## Whether to squash various users.
> > Squash = root_squash;
> >
> > ## Allowed security types for this export
> > #Sectype = sys,krb5,krb5i,krb5p;
> >
> > ## Exporting FSAL
> > FSAL {
> > Name = PROXY;
> > Srv_Addr = 10.151.27.27;
> > }
> > CLIENT
> > {
> > Clients = 129.99.10.111;
> > }
> >
> > }
> > ## Configure logging. Default is to log to Syslog.
Basic logging can also be
> > ## configured from the command line
> > LOG {
> > ## Default log level for all components
> > Default_Log_Level = INFO;
> >
> > ## Configure per-component log levels.
> > Components {
> > FSAL = INFO;
> > NFS4 = MID_DEBUG;
> > EXPORT = MID_DEBUG;
> > }
> >
> > ## Where to log
> > Facility {
> > name = FILE;
> > destination =
"/mnt/nbnfs2/jcbecker/reexporter/var/log/ganesha.log";
> > enable = active;
> > }
> > }
> >
> > Daniel
> >
> > On 7/17/20 3:36 PM, Becker, Jeffrey C.
(ARC-TN)[InuTeq, LLC] via Devel
> > wrote:
> > > My bad - I added the format string to get a
slightly different traceback below (as I explained to Frank Filz, I originally had the
call you suggest without errstr, and got pretty much the same segfault). I'll keep
exploring in gdb. Advice appreciated. Thanks.
> > >
> > > -Jeff
> > >
> > > Program received signal SIGSEGV, Segmentation
fault.
> > > 0x00002aaaaad43cac in
display_log_component_level (component=COMPONENT_NFS_V4,
> > > file=0x2aaaaae4d5f8
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c", line=519,
function=0x2aaaaae4d7fb <__func__.18797> "um_load",
> > > level=NIV_WARN, format=0x2aaaaae4d7ed
"%s", arguments=0x7fffffff2718)
> > > at
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1519
> > > 1519 if (level <=
facility->lf_max_level
> > >
> > > (gdb) where
> > > #0 0x00002aaaaad43cac in
display_log_component_level (
> > > component=COMPONENT_NFS_V4,
> > > file=0x2aaaaae4d5f8
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c", line=519,
function=0x2aaaaae4d7fb <__func__.18797> "um_load",
> > > level=NIV_WARN, format=0x2aaaaae4d7ed
"%s", arguments=0x7fffffff2718)
> > > at
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1519
> > > #1 0x00002aaaaad43dfe in
DisplayLogComponentLevel (
> > > component=COMPONENT_NFS_V4,
> > > file=0x2aaaaae4d5f8
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c", line=519,
function=0x2aaaaae4d7fb <__func__.18797> "um_load",
> > > level=NIV_WARN, format=0x2aaaaae4d7ed
"%s")
> > > at
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1704
> > > #2 0x000
> > >
> > > On 7/17/20, 11:42 AM, "Daniel
Gryniewicz" <dang(a)redhat.com> wrote:
> > >
> > > LogWarn() (and the others like it) are
printf-alikes, so they need a?
> > > format parameter. It would be called like
this:
> > >
> > > LogWarn(COMPONENT_NFS_V4, "%s",
errstr);
> > >
> > > But, you don't need the errstr at all,
you can just call like this:
> > >
> > > LogWarn(COMPONENT_NFS_V4, "Invalid
map: %s: %s", clue, line);
> > >
> > > Daniel
> > >
> > > On 7/17/20 12:52 PM, Becker, Jeffrey C.
(ARC-TN)[InuTeq, LLC] via Devel
> > > wrote:
> > > > Hi,
> > > >
> > > > I’m trying to call your logging as
follows:
> > > >
> > > > sprintf(errstr,
"Invalid map: %s: %s", clue, line);
> > > >
> > > >
LogWarn(COMPONENT_NFS_V4, errstr);
> > > >
> > > > I’m getting a segfault in LogWarn.
> > > >
> > > > Program received signal SIGSEGV,
Segmentation fault.
> > > >
> > > > 0x00002aaaaad43ca4 in
display_log_component_level
> > > > (component=COMPONENT_NFS_V4,
> > > >
> > > > file=0x2aaaaae4d5d8
> > > >
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c",
> > > > line=519, function=0x2aaaaae4d7d8
<__func__.18797> "um_load",
> > > >
> > > > level=NIV_WARN,
> > > >
> > > > format=0x7fffffffc470
"Invalid map: unknown_user: dataset:
> > > > 129.99.10.111 \t21102:61856 dataset
n1856", arguments=0x7fffffff2718)
> > > >
> > > > at
> > > >
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1519
> > > >
> > > > 1519
if (level <=
> > > > facility->lf_max_level
> > > >
> > > > The traceback is below. I’m
investigating, but any advice is welcome.
> > > > Thanks.
> > > >
> > > > -Jeff
> > > >
> > > > (gdb) where
> > > >
> > > > #0 0x00002aaaaad43ca4 in
display_log_component_level (
> > > >
> > > > component=COMPONENT_NFS_V4,
> > > >
> > > > file=0x2aaaaae4d5d8
> > > >
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c",
> > > > line=519, function=0x2aaaaae4d7d8
<__func__.18797> "um_load",
> > > >
> > > > level=NIV_WARN,
> > > >
> > > > format=0x7fffffffc470
"Invalid map: unknown_user: dataset:
> > > > 129.99.10.111 \t21102:61856 dataset
n1856", arguments=0x7fffffff2718)
> > > >
> > > > at
> > > >
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1519
> > > >
> > > > #1 0x00002aaaaad43df6 in
DisplayLogComponentLevel (
> > > >
> > > > component=COMPONENT_NFS_V4,
> > > >
> > > > file=0x2aaaaae4d5d8
> > > >
"/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/uidmap/uidmap.c",
> > > > line=519, function=0x2aaaaae4d7d8
<__func__.18797> "um_load",
> > > >
> > > > level=NIV_WARN,
> > > >
> > > > format=0x7fffffffc470
"Invalid map: unknown_user: dataset:
> > > > 129.99.10.111 \t21102:61856 dataset
n1856")
> > > >
> > > > at
> > > >
/mnt/nbnfs2/jcbecker/reexporter/nfs-ganesha/src/log/log_functions.c:1704
> > > >
> > > >
> > > >
_______________________________________________
> > > > Devel mailing list --
devel(a)lists.nfs-ganesha.org
> > > > To unsubscribe send an email to
devel-leave(a)lists.nfs-ganesha.org
> > > >
> > >
> > >
> > >
_______________________________________________
> > > Devel mailing list --
devel(a)lists.nfs-ganesha.org
> > > To unsubscribe send an email to
devel-leave(a)lists.nfs-ganesha.org
> > >
> >
> >
> >
> > _______________________________________________
> > Devel mailing list -- devel(a)lists.nfs-ganesha.org
> > To unsubscribe send an email to
devel-leave(a)lists.nfs-ganesha.org
> >
>
>
>
_______________________________________________
Devel mailing list -- devel(a)lists.nfs-ganesha.org
To unsubscribe send an email to devel-leave(a)lists.nfs-ganesha.org
_______________________________________________
Devel mailing list -- devel(a)lists.nfs-ganesha.org
To unsubscribe send an email to devel-leave(a)lists.nfs-ganesha.org