Index: [Article Count Order] [Thread]

Date:  Fri, 24 Feb 2006 05:39:06 -0600
From:  "John Crouch" <john (at mark) croucho.com>
Subject:  [coba-e:04164] Re: Use of uninitialized value, Quota? <= SOLUTION
To:  <coba-e (at mark) bluequartz.org>
Message-Id:  <200602241139.k1OBdBFu011677 (at mark) mx2.lsn.net>
In-Reply-To:  <009f01c638fb$b6c26de0$0301a8c0@Jerrycp>
X-Mail-Count: 04164

Thanks Gerald.  I'll give it a try this morning.

-----Original Message-----
From: Gerald Waugh [mailto:gwaugh (at mark) frontstreetnetworks.com] 
Sent: Thursday, February 23, 2006 10:35 PM
To: coba-e (at mark) bluequartz.org
Subject: [coba-e:04159] Re: Use of uninitialized value, Quota? <= SOLUTION



> -----Original Message-----
> From: Brian N. Smith [mailto:brian (at mark) nuonce.net] 
> Sent: Thursday, February 23, 2006 10:24 PM
> To: Gerald Waugh
> Subject: Fw: [coba-e:04157] Use of uninitialized value, 
> Quota? <= SOLUTION
> 
> 
> This is a bug related to BlueQuartz.  It appears when you 
> remove a virtual site, it may not be deleted 100%.  I do NOT 
> know if it only effects the CD available from my website, or 
> if it effects everyone no matter how they installed.  Down at 
> the bottom shows how to fix it though.
> 
> Use of uninitialized value in subroutine entry at 
> /usr/sausalito/swatch/bin/am_disk.pl
> line 410, <GEN2> line 25.
> 
> This is because $gid is NULL, it has no value.  I tracked 
> that down to this
> line:
> 
> my ($name, $null, $gid) = getgrnam($site);
> 
> Now, it should return $name & $gid ... $name should be the 
> same as $site, and $gid is the Group ID.  Problem though is 
> that the $site no longer exists, but still shows up.  Which 
> made me think, WTF?
> 
> So, I tracked $site down to:
> 
> foreach my $site (@some_sites) {
> 
> Which took me too
> 
>  (at mark) some_sites = grep !/^\./, readdir(HASH);
> 
> Which finally showed me this line
> 
> opendir(HASH, $hash);
> 
> So, I capture the output of $hash, which is nothing more then;
> 
> hash - /home/.sites/33
> hash - /home/.sites/85
> hash - /home/.sites/70
> hash - /home/.sites/64
> hash - /home/.sites/132
> hash - /home/.sites/28
> hash - /home/.sites/106
> 
> Which, as we all know is just the way that Sausalito stores 
> Virtual sites. Well, back to the problem. Long story short, 
> it looks inside the "$hash"
> (directory) for additional directories.  Well, each sub 
> directory then looks like so;
> 
> [root (at mark) mail bin]# ls -l /home/.sites/132
> total 8
> drwxrwsr-x  7 nobody site12 4096 Feb 11 04:06 site12
> drwxrwsr-x  7 nobody    522 4096 Feb 16 04:06 site21
> 
> As you see, that is where the "$site" comes from ...  Now the 
> problem here is that the contents of "site21" should NOT be 
> there anymore.  I looked in /home/sites, and there isn't any 
> reference to a site21.  I also looked in the /var/db/group.db 
> file (fyi, to see that file, do this: strings 
> /var/db/group.db).  site21 is NOT there.  Which tells me that 
> the virtual site got removed,  BUT, it didn't get deleted.
> 
> Solutions.
> 
> 1) - Fix the "vsite_destroy.pl" file and make sure it deletes 
> the "basedir" for virtual site.
> 2) - Write a quick "hack" into the am_disk.pl that checks if 
> $gid is NULL or not.
> 
>             # do query
>  if ( $gid ) {
>               my ($used, $quota) = Quota::query($dev, $gid, 
> $is_group);
> 
>               if (! defined $quota || $quota == 0) {
>                 # no quota set
>                 $DEBUG && print "no quota set on $name, skipping\n";
>                 next;
>               }
> 
>               if ($used > $quota) {
>                 $DEBUG && print "$name is over quota. used 
> $used of $quota\n";
>                 push @sites_over_quota, $name;
>               } else {
>                 $DEBUG && print "$name is NOT over quota.\n";
>               }
> }
> 
> You add this line:
>    if ( $gid ) {
> 
> Then add this
>  }
> 
> Since the group doesn't exist, no need to report on it in the 
> GUI.  Of course it would be nice if it didn't exist, and you 
> can go through and clean it up manually too.  That will also 
> take care of it as well.
> 
> 
> Thank You,
> 
> Brian N. Smith
> NuOnce Networks
> www.nuonce.net
>