Snider, Tim
2007-Jan-24 09:34 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
Trying to get OST running in embedded environment: mkfs.lustre & tunefs.lustre commands (seem to) work. MDT/MGS up & running on ''normal'' x86 platform - different server. mount command fails - looks like parameters aren''t passed to lmd_parse. An added printk to display options passed to routine showed a NULL string was being passed to the routine. I corrected an error yesterday in mkfs_lustre.c return value of getopt_long call was being assigned to a char var not long. Caused the gcc cross compiler to optimize out the termination condition since a char can never equal EOF (-1). output below varied on seems to indicate options are position sensitive. console output follows - my printk debug is included - option string passed to lmd_parse is enclosed by >> <<: I''ll start going thru the calls above lmd_parse. Ideas are appreciated. root@:/sbin# mount -vt lustre /dev/sdb1 /mnt/test/ost0 Lustre: OBD class driver, info@clusterfs.com Lustre Version: 1.5.95 Build Version: 1.5.95-19691231180000-PRISTINE-.home.tsnider.linux-2.6.18.3-2.6.18-iop3. 1tsPrivate Lustre: Added LNI 172.22.14.65@tcp [8/256] Lustre: Accept secure, port 988 Lustre: Lustre Client File System; info@clusterfs.com lmd_parse: options >><< lmd_parse out of loop: s1 - >><< s2: >><NULL><< mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalid argument root@:/sbin# mount -t lustre /dev/sdb1 /mnt/test/ost0 lmd_parse: options >><< lmd_parse out of loop: s1 - >><< s2: >><NULL><< LustreError: Can''t find the device name (need mount option ''device=...'') LustreError: Skipped 1 previous similar message LustreError: 1098:0:(obd_mount.c:1825:lmd_parse()) Bad mount options LustreError: 1098:0:(obd_mount.c:1825:lmd_parse()) Skipped 1 previous similar message mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalid argument root@:/sbin# mount -v -t lustre /dev/sdb1 /mnt/test/ost0 lmd_parse: options >><< lmd_parse out of loop: s1 - >><< s2: >><NULL><< LustreError: Can''t find the device name (need mount option ''device=...'') LustreError: 1099:0:(obd_mount.c:1825:lmd_parse()) Bad mount options mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalid argument lctl dk output: root@:/sbin# armv5l-linux-lctl dk /tmpf Debug log: 22 lines, 22 kept, 0 dropped. root@:/sbin# cat /tmpf 00000400:02000000:0:222.238734:456:1071:0:(api-ni.c:1082:lnet_startup_ln dnis()) Added LNI 172.22.14.65@tcp [8/256] 00000400:02000000:0:222.243674:172:1088:0:(acceptor.c:392:lnet_acceptor( )) Accept secure, port 988 00000200:01200004:0:225.834116:560:1069:0:(obd_mount.c:1838:lustre_fill_ super()) VFS Op: sb 5d527e00 00000200:02020000:0:225.840546:628:1069:0:(obd_mount.c:1785:lmd_parse()) Can''t find the device name (need mount option ''device=...'') 00000200:00020000:0:225.840550:628:1069:0:(obd_mount.c:1825:lmd_parse()) Bad mount options 00000200:01000004:0:225.840555:620:1069:0:(obd_mount.c:1176:lustre_put_l si()) put 5d527e00 1 00000200:01000004:0:225.840560:688:1069:0:(obd_mount.c:1134:lustre_free_ lsi()) Freeing lsi 00000200:01200004:0:647.929698:560:1098:0:(obd_mount.c:1838:lustre_fill_ super()) VFS Op: sb 5dd4de00 00000200:02020000:0:647.936135:628:1098:0:(obd_mount.c:1785:lmd_parse()) Can''t find the device name (need mount option ''device=...'') 00000200:00020000:0:647.946797:628:1098:0:(obd_mount.c:1825:lmd_parse()) Bad mount options 00000200:01000004:0:647.960511:620:1098:0:(obd_mount.c:1176:lustre_put_l si()) put 5dd4de00 1 00000200:01000004:0:647.960517:688:1098:0:(obd_mount.c:1134:lustre_free_ lsi()) Freeing lsi 00000200:01200004:0:662.155539:560:1099:0:(obd_mount.c:1838:lustre_fill_ super()) VFS Op: sb 5dd4d600 00000200:02020000:0:662.161999:628:1099:0:(obd_mount.c:1785:lmd_parse()) Can''t find the device name (need mount option ''device=...'') 00000200:00020000:0:662.168409:628:1099:0:(obd_mount.c:1825:lmd_parse()) Bad mount options 00000200:01000004:0:662.174557:620:1099:0:(obd_mount.c:1176:lustre_put_l si()) put 5dd4d600 1 00000200:01000004:0:662.174562:688:1099:0:(obd_mount.c:1134:lustre_free_ lsi()) Freeing lsi 00000200:01200004:0:703.114895:560:1103:0:(obd_mount.c:1838:lustre_fill_ super()) VFS Op: sb 5ebfa000 00000200:02020000:0:703.121363:628:1103:0:(obd_mount.c:1785:lmd_parse()) Can''t find the device name (need mount option ''device=...'') 00000200:00020000:0:703.127772:628:1103:0:(obd_mount.c:1825:lmd_parse()) Bad mount options 00000200:01000004:0:703.133928:620:1103:0:(obd_mount.c:1176:lustre_put_l si()) put 5ebfa000 1 00000200:01000004:0:703.133933:688:1103:0:(obd_mount.c:1134:lustre_free_ lsi()) Freeing lsi output from tunefs.lustre root@:/sbin# armv5l-linux-tunefs.lustre /dev/sdb1 checking for existing Lustre data found Lustre data Reading CONFIGS/mountdata Read previous values: Target: testfs-OSTffff Index: unassigned Lustre FS: testfs Mount type: ldiskfs Flags: 0x72 (OST needs_index first_time update ) Persistent mount opts: errors=remount-ro,extents,mballoc Parameters: mgsnode=172.22.14.100@tcp mgsnode=172.22.14.100@tcp Permanent disk data: Target: testfs-OSTffff Index: unassigned Lustre FS: testfs Mount type: ldiskfs Flags: 0x72 (OST needs_index first_time update ) Persistent mount opts: errors=remount-ro,extents,mballoc Parameters: mgsnode=172.22.14.100@tcp mgsnode=172.22.14.100@tcp kjournald starting. Commit interval 5 seconds LDISKFS FS on sdb1, internal journal LDISKFS-fs: mounted filesystem with ordered data mode. Writing CONFIGS/mountdata root@:/sbin# output from mkfs.lustre command: root@:/sbin# mkfs.lustre --verbose --fsname=testfs --ost --mgsnode=172.222.14.100@tcp /dev/sdb1 Permanent disk data: Target: testfs-OSTffff Index: unassigned Lustre FS: testfs Mount type: ldiskfs Flags: 0x72 (OST needs_index first_time update ) Persistent mount opts: errors=remount-ro,extents,mballoc Parameters: mgsnode=172.22.14.100@tcp checking for existing Lustre data device size = 40959MB formatting backing filesystem ldiskfs on /dev/sdb1 target name testfs-OSTffff 4k blocks 0 options -J size=400 -i 16384 -I 256 -O dir_index -F mkfs_cmd = mkfs.ext2 -j -b 4096 -L testfs-OSTffff -J size=400 -i 16384 -I 256 -O dir_index -F /dev/sdb1 cmd: mkfs.ext2 -j -b 4096 -L testfs-OSTffff -J size=400 -i 16384 -I 256 -O dir_index -F /dev/sdb1 kjournald starting. Commit interval 5 seconds LDISKFS FS on sdb1, internal journal LDISKFS-fs: mounted filesystem with ordered data mode. Writing CONFIGS/mountdata root@:~# Thanks, Tim Timothy Snider Storage Architect Strategic Planning, Technology and Architecture LSI Logic Corporation 3718 North Rock Road Wichita, KS 67226 (316) 636-8736 tim.snider@lsi.com <mailto:tim.snider@lsi.com>
Snider, Tim
2007-Jan-24 14:13 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
Ok - some what better results. I thought the ''regular'' mount cmd was supposed to be used now and not mount.lustre. mount.lustre does work better. Now there is some communication between OST and MDT/MGS. Looks like I have byte order / packing problems to look at. MDT/MGS complains: Message from syslogd@FedoraCore100 at Wed Jan 24 16:13:12 2007 ... FedoraCore100 kernel: LustreError: 16610:0:(pack_generic.c:1270:lustre_msg_get_opc()) ASSERTION(0) failed:incorrect message magic: 0bd00bd2 Message from syslogd@FedoraCore100 at Wed Jan 24 16:13:12 2007 ... FedoraCore100 kernel: LustreError: 16610:0:(pack_generic.c:1270:lustre_msg_get_opc()) LBUG Tim -----Original Message----- From: Nathaniel Rutman [mailto:nathan@clusterfs.com] Sent: Wednesday, January 24, 2007 2:38 PM To: Snider, Tim Subject: Re: [Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail The options going to mount() from mount.lustre look right (optcopy)? Snider, Tim wrote:> Trying to get OST running in embedded environment: > mkfs.lustre & tunefs.lustre commands (seem to) work. > MDT/MGS up & running on ''normal'' x86 platform - different server. > > mount command fails - looks like parameters aren''t passed tolmd_parse.> An added printk to display options passed to routine showed a NULL > string was being passed to the routine. > > I corrected an error yesterday in mkfs_lustre.c return value of > getopt_long call was being assigned to a char var not long. Caused the> gcc cross compiler to optimize out the termination condition since a > char can never equal EOF (-1). > > output below varied on seems to indicate options are positionsensitive.> console output follows - my printk debug is included - option string > passed to lmd_parse is enclosed by >> <<: > > I''ll start going thru the calls above lmd_parse. > > Ideas are appreciated. > > root@:/sbin# mount -vt lustre /dev/sdb1 /mnt/test/ost0 > Lustre: OBD class driver, info@clusterfs.com > Lustre Version: 1.5.95 > Build Version: >1.5.95-19691231180000-PRISTINE-.home.tsnider.linux-2.6.18.3-2.6.18-iop3.> 1tsPrivate > Lustre: Added LNI 172.22.14.65@tcp [8/256] > Lustre: Accept secure, port 988 > Lustre: Lustre Client File System; info@clusterfs.com > lmd_parse: options >><< > lmd_parse out of loop: s1 - >><< s2: >><NULL><< > mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalidargument> > root@:/sbin# mount -t lustre /dev/sdb1 /mnt/test/ost0 > lmd_parse: options >><< > lmd_parse out of loop: s1 - >><< s2: >><NULL><< > LustreError: Can''t find the device name (need mount option > ''device=...'') > LustreError: Skipped 1 previous similar message > LustreError: 1098:0:(obd_mount.c:1825:lmd_parse()) Bad mountoptions> LustreError: 1098:0:(obd_mount.c:1825:lmd_parse()) Skipped 1previous> similar message > mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalidargument> > root@:/sbin# mount -v -t lustre /dev/sdb1 /mnt/test/ost0 > lmd_parse: options >><< > lmd_parse out of loop: s1 - >><< s2: >><NULL><< > LustreError: Can''t find the device name (need mount option > ''device=...'') > LustreError: 1099:0:(obd_mount.c:1825:lmd_parse()) Bad mountoptions> mount: Mounting /dev/sdb1 on /mnt/test/ost0 failed: Invalidargument> > lctl dk output: > root@:/sbin# armv5l-linux-lctl dk /tmpf > Debug log: 22 lines, 22 kept, 0 dropped. > root@:/sbin# cat /tmpf > > 00000400:02000000:0:222.238734:456:1071:0:(api-ni.c:1082:lnet_startup_ > ln > dnis()) Added LNI 172.22.14.65@tcp [8/256] > > 00000400:02000000:0:222.243674:172:1088:0:(acceptor.c:392:lnet_accepto > r( > )) Accept secure, port 988 > > 00000200:01200004:0:225.834116:560:1069:0:(obd_mount.c:1838:lustre_fil > l_ > super()) VFS Op: sb 5d527e00 > > 00000200:02020000:0:225.840546:628:1069:0:(obd_mount.c:1785:lmd_parse( > )) Can''t find the device name (need mount option ''device=...'') > > 00000200:00020000:0:225.840550:628:1069:0:(obd_mount.c:1825:lmd_parse( > )) > Bad mount options > > 00000200:01000004:0:225.840555:620:1069:0:(obd_mount.c:1176:lustre_put > _l > si()) put 5d527e00 1 > > 00000200:01000004:0:225.840560:688:1069:0:(obd_mount.c:1134:lustre_fre > e_ > lsi()) Freeing lsi > > 00000200:01200004:0:647.929698:560:1098:0:(obd_mount.c:1838:lustre_fil > l_ > super()) VFS Op: sb 5dd4de00 > > 00000200:02020000:0:647.936135:628:1098:0:(obd_mount.c:1785:lmd_parse( > )) Can''t find the device name (need mount option ''device=...'') > > 00000200:00020000:0:647.946797:628:1098:0:(obd_mount.c:1825:lmd_parse( > )) > Bad mount options > > 00000200:01000004:0:647.960511:620:1098:0:(obd_mount.c:1176:lustre_put > _l > si()) put 5dd4de00 1 > > 00000200:01000004:0:647.960517:688:1098:0:(obd_mount.c:1134:lustre_fre > e_ > lsi()) Freeing lsi > > 00000200:01200004:0:662.155539:560:1099:0:(obd_mount.c:1838:lustre_fil > l_ > super()) VFS Op: sb 5dd4d600 > > 00000200:02020000:0:662.161999:628:1099:0:(obd_mount.c:1785:lmd_parse( > )) Can''t find the device name (need mount option ''device=...'') > > 00000200:00020000:0:662.168409:628:1099:0:(obd_mount.c:1825:lmd_parse( > )) > Bad mount options > > 00000200:01000004:0:662.174557:620:1099:0:(obd_mount.c:1176:lustre_put > _l > si()) put 5dd4d600 1 > > 00000200:01000004:0:662.174562:688:1099:0:(obd_mount.c:1134:lustre_fre > e_ > lsi()) Freeing lsi > > 00000200:01200004:0:703.114895:560:1103:0:(obd_mount.c:1838:lustre_fil > l_ > super()) VFS Op: sb 5ebfa000 > > 00000200:02020000:0:703.121363:628:1103:0:(obd_mount.c:1785:lmd_parse( > )) Can''t find the device name (need mount option ''device=...'') > > 00000200:00020000:0:703.127772:628:1103:0:(obd_mount.c:1825:lmd_parse( > )) > Bad mount options > > 00000200:01000004:0:703.133928:620:1103:0:(obd_mount.c:1176:lustre_put > _l > si()) put 5ebfa000 1 > > 00000200:01000004:0:703.133933:688:1103:0:(obd_mount.c:1134:lustre_fre > e_ > lsi()) Freeing lsi > > output from tunefs.lustre > > root@:/sbin# armv5l-linux-tunefs.lustre /dev/sdb1 > checking for existing Lustre data > found Lustre data > Reading CONFIGS/mountdata > > Read previous values: > Target: testfs-OSTffff > Index: unassigned > Lustre FS: testfs > Mount type: ldiskfs > Flags: 0x72 > (OST needs_index first_time update ) > Persistent mount opts: errors=remount-ro,extents,mballoc > Parameters: mgsnode=172.22.14.100@tcp mgsnode=172.22.14.100@tcp > > > Permanent disk data: > Target: testfs-OSTffff > Index: unassigned > Lustre FS: testfs > Mount type: ldiskfs > Flags: 0x72 > (OST needs_index first_time update ) > Persistent mount opts: errors=remount-ro,extents,mballoc > Parameters: mgsnode=172.22.14.100@tcp mgsnode=172.22.14.100@tcp > > kjournald starting. Commit interval 5 seconds > LDISKFS FS on sdb1, internal journal > LDISKFS-fs: mounted filesystem with ordered data mode. > Writing CONFIGS/mountdata > root@:/sbin# > > output from mkfs.lustre command: > > root@:/sbin# mkfs.lustre --verbose --fsname=testfs --ost > --mgsnode=172.222.14.100@tcp /dev/sdb1 > Permanent disk data: > Target: testfs-OSTffff > Index: unassigned > Lustre FS: testfs > Mount type: ldiskfs > Flags: 0x72 > (OST needs_index first_time update ) > Persistent mount opts: errors=remount-ro,extents,mballoc > Parameters: mgsnode=172.22.14.100@tcp > > checking for existing Lustre data > device size = 40959MB > formatting backing filesystem ldiskfs on /dev/sdb1 > target name testfs-OSTffff > 4k blocks 0 > options -J size=400 -i 16384 -I 256 -O dir_index > -F > mkfs_cmd = mkfs.ext2 -j -b 4096 -L testfs-OSTffff -J size=400-i> 16384 -I 256 -O dir_index -F /dev/sdb1 > cmd: mkfs.ext2 -j -b 4096 -L testfs-OSTffff -J size=400 -i > 16384 -I 256 -O dir_index -F /dev/sdb1 > kjournald starting. Commit interval 5 seconds > LDISKFS FS on sdb1, internal journal > LDISKFS-fs: mounted filesystem with ordered data mode. > Writing CONFIGS/mountdata > root@:~# > > Thanks, > Tim > > Timothy Snider > Storage Architect > Strategic Planning, Technology and Architecture > > LSI Logic Corporation > 3718 North Rock Road > Wichita, KS 67226 > (316) 636-8736 > tim.snider@lsi.com <mailto:tim.snider@lsi.com> > > > > > > > > > > > > > > _______________________________________________ > Lustre-devel mailing list > Lustre-devel@clusterfs.com > https://mail.clusterfs.com/mailman/listinfo/lustre-devel > >
Nathaniel Rutman
2007-Jan-24 14:53 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
Snider, Tim wrote:> Ok - some what better results. I thought the ''regular'' mount cmd was > supposed to be used now and not mount.lustre. > > mount.lustre does work better. > >/sbin/mount.lustre is called by the userspace mount(8) command normally.> Now there is some communication between OST and MDT/MGS. > > Looks like I have byte order / packing problems to look at. > MDT/MGS complains: > Message from syslogd@FedoraCore100 at Wed Jan 24 16:13:12 2007 ... > FedoraCore100 kernel: LustreError: > 16610:0:(pack_generic.c:1270:lustre_msg_get_opc()) ASSERTION(0) > failed:incorrect message magic: 0bd00bd2 >That looks like the message magic for beta5. Beta 7 changed this to 0bd00bd3, so you must be running the same version everywhere.
Andreas Dilger
2007-Jan-24 16:27 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
On Jan 24, 2007 09:33 -0700, Snider, Tim wrote:> I corrected an error yesterday in mkfs_lustre.c return value of > getopt_long call was being assigned to a char var not long. Caused the > gcc cross compiler to optimize out the termination condition since a > char can never equal EOF (-1).Does your embedded arch use an unsigned char instead of a signed char by default? Please forward patches to the list so that they can be discussed and incorporated upstream. Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc.
Snider, Tim
2007-Jan-25 06:46 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
Ok - I''m fairly new in this development environment. Do y''all prefer individual posts for each patch or one collective post & patch? I''ve made several modifications to get this to work. -----Original Message----- From: Andreas Dilger [mailto:adilger@clusterfs.com] Sent: Wednesday, January 24, 2007 5:28 PM To: Snider, Tim Cc: lustre-devel@clusterfs.com Subject: Re: [Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail On Jan 24, 2007 09:33 -0700, Snider, Tim wrote:> I corrected an error yesterday in mkfs_lustre.c return value of > getopt_long call was being assigned to a char var not long. Caused the> gcc cross compiler to optimize out the termination condition since a > char can never equal EOF (-1).Does your embedded arch use an unsigned char instead of a signed char by default? Please forward patches to the list so that they can be discussed and incorporated upstream. Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc.
Nathaniel Rutman
2007-Jan-25 14:09 UTC
[Lustre-devel] lmd_parse complains of missing option - causes OST Mount command to fail
Either way. FYI, we fixed the return value to getopt_long in beta7. Should be an int, not a long, according to the getopt_long man page. Snider, Tim wrote:> Ok - I''m fairly new in this development environment. Do y''all prefer > individual posts for each patch or one collective post & patch? I''ve > made several modifications to get this to work. > > -----Original Message----- > From: Andreas Dilger [mailto:adilger@clusterfs.com] > Sent: Wednesday, January 24, 2007 5:28 PM > To: Snider, Tim > Cc: lustre-devel@clusterfs.com > Subject: Re: [Lustre-devel] lmd_parse complains of missing option - > causes OST Mount command to fail > > On Jan 24, 2007 09:33 -0700, Snider, Tim wrote: > >> I corrected an error yesterday in mkfs_lustre.c return value of >> getopt_long call was being assigned to a char var not long. Caused the >> > > >> gcc cross compiler to optimize out the termination condition since a >> char can never equal EOF (-1). >> > > Does your embedded arch use an unsigned char instead of a signed char by > default? Please forward patches to the list so that they can be > discussed and incorporated upstream. > > Cheers, Andreas > -- > Andreas Dilger > Principal Software Engineer > Cluster File Systems, Inc. > > _______________________________________________ > Lustre-devel mailing list > Lustre-devel@clusterfs.com > https://mail.clusterfs.com/mailman/listinfo/lustre-devel > >