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@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@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@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@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@nasa.gov> wrote: > > > > Config below. Thanks. > > > > -Jeff > > > > On 7/20/20, 5:26 AM, "Daniel Gryniewicz" <dang@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@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@lists.nfs-ganesha.org > > > > To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org > > > > > > > > > > > > > _______________________________________________ > > > Devel mailing list -- devel@lists.nfs-ganesha.org > > > To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org > > > > > > > > > > > _______________________________________________ > > Devel mailing list -- devel@lists.nfs-ganesha.org > > To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org > > > > >
_______________________________________________ Devel mailing list -- devel@lists.nfs-ganesha.org To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org