Problem with pw-syscall4.1 & sys_kuload

Problem with pw-syscall4.1 & sys_kuload

Post by Clive Sparke » Mon, 17 Dec 2001 03:33:14



Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
be unloaded by loadext.  Normally to get round this I use the following:

/* unload the old pw-syscall4.1 without reboot */
#include <sys/sysconfig.h>
main()
{
   int kmod_id;
   struct cfg_load cfg_ld;
   char *path = "/etc/pw-syscall4.1";

   cfg_ld.path = path;
   if (sysconfig(SYS_QUERYLOAD, (void *)&cfg_ld, (int)sizeof(cfg_ld))) {
       perror("sysconfig(SYS_QUERYLOAD)");
       exit(1);
   }
   if (!cfg_ld.kmid) {
       printf("Unable to locate extension, check with genkex.\n");
           exit(1);
   }
   if (sysconfig(SYS_KULOAD, (void *)&cfg_ld, (int)sizeof(cfg_ld))) {
       perror("sysconfig(SYS_KULOAD)");
       exit(1);
   }
   printf("It's gone.\n");
   exit(0);

Quote:}

This in combination with a slibclean usually gets rid of it, but not
today.  I checked the loadlist with crash and got this result:  

LoadList entry at 0x051b8b80
  Module *start:0x00000000_0174aa48  Module filesize:0x00000000_000007a0
  Module *end:0x00000000_0174b1e8
  *data:0x00000000_0174b140  data length:0x00000000_000000a8
  Use-count:0x0002  load_count:0x0000  *file:0x00000000
  flags:0x00000273 UNLOAD TEXT KERNELEX DATAINTEXT DATA DATAEXISTS
  *exp:0x05596000  *lex:0x00000000  *deferred:0x00000000
expsize:0x6c696263
  Name: /etc/pw-syscall4.1
  ndepend:0x0001  maxdepend:0x0001
  *depend[00]:0x05170a80
  *le_next:  05170d00

I could find nothing using this extension (no oracle owned processes
running, no oracle owned shared memory etc) but it still has a use count
of 2.  In the end I had to reboot the box to get rid it.  Anybody got
any ideas as to what went wrong?

--
Regards,
Clive

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Gary R. Hoo » Tue, 18 Dec 2001 23:48:55



> Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
> be unloaded by loadext.  Normally to get round this I use the following:

> I could find nothing using this extension (no oracle owned processes
> running, no oracle owned shared memory etc) but it still has a use count
> of 2.  In the end I had to reboot the box to get rid it.  Anybody got
> any ideas as to what went wrong?

There are probably other kernel extensions "on top" of it.  Unless
you unwind kernel extensions so that the kernel namespaces are
removed in reverse order, you can't get rid of something "in the
middle".
I.e. the namespaces are in a linked list; later ones depend upon earlier
ones.  You have to back them out one by one, which means unloading
other extensions.  As you've discovered, rebooting and not firing
up Oracle is the fastest way to go about your business.

--
Gary R. Hook / AIX PartnerWorld for Developers / These opinions are MINE
________________________________________________________________________

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Malakai » Wed, 19 Dec 2001 10:26:11



> Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
> be unloaded by loadext.  Normally to get round this I use the following:

> /* unload the old pw-syscall4.1 without reboot */
> #include <sys/sysconfig.h>
> main()
> {
>    int kmod_id;
>    struct cfg_load cfg_ld;
>    char *path = "/etc/pw-syscall4.1";

>    cfg_ld.path = path;
>    if (sysconfig(SYS_QUERYLOAD, (void *)&cfg_ld, (int)sizeof(cfg_ld))) {
>        perror("sysconfig(SYS_QUERYLOAD)");
>        exit(1);
>    }
>    if (!cfg_ld.kmid) {
>        printf("Unable to locate extension, check with genkex.\n");
>            exit(1);
>    }
>    if (sysconfig(SYS_KULOAD, (void *)&cfg_ld, (int)sizeof(cfg_ld))) {
>        perror("sysconfig(SYS_KULOAD)");
>        exit(1);
>    }
>    printf("It's gone.\n");
>    exit(0);
> }

> This in combination with a slibclean usually gets rid of it, but not
> today.  I checked the loadlist with crash and got this result:  

> LoadList entry at 0x051b8b80
>   Module *start:0x00000000_0174aa48  Module filesize:0x00000000_000007a0
>   Module *end:0x00000000_0174b1e8
>   *data:0x00000000_0174b140  data length:0x00000000_000000a8
>   Use-count:0x0002  load_count:0x0000  *file:0x00000000
>   flags:0x00000273 UNLOAD TEXT KERNELEX DATAINTEXT DATA DATAEXISTS
>   *exp:0x05596000  *lex:0x00000000  *deferred:0x00000000
> expsize:0x6c696263
>   Name: /etc/pw-syscall4.1
>   ndepend:0x0001  maxdepend:0x0001
>   *depend[00]:0x05170a80
>   *le_next:  05170d00

> I could find nothing using this extension (no oracle owned processes
> running, no oracle owned shared memory etc) but it still has a use count
> of 2.  In the end I had to reboot the box to get rid it.  Anybody got
> any ideas as to what went wrong

Is this supported?

If not, don't use it on production.

If not in production... Reboot.

But, I'm impressed!

I think you're mad... But I'm impressed!

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Miljenko Jandr » Wed, 19 Dec 2001 13:44:36


On Sat, 15 Dec 2001 19:33:14 +0100, Clive Sparkes


>Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
>be unloaded by loadext.  Normally to get round this I use the following:

>/* unload the old pw-syscall4.1 without reboot */
>[...]
>I could find nothing using this extension (no oracle owned processes
>running, no oracle owned shared memory etc) but it still has a use count
>of 2.  In the end I had to reboot the box to get rid it.  Anybody got
>any ideas as to what went wrong?

>--
>Regards,
>Clive

Gosh, this stuff went right over my head. However, I did have the same
problem once or twice, and was able to recover from it. If I
understand you correctly the behaviour changed when oracle was
upgraded from 7 to 8. I believe  Oracle 8 provides a different
pw-syscall which should be installed and this version has an command
line option for unloading. It will tell you about it if you run it
with -?. pw-syscall that comes with oracle 7 has no command line
options (or they are undocumented).

If I am off the target, oh well, at least I tried...

mj

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Clive Sparke » Wed, 19 Dec 2001 18:17:11




> > Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
> > be unloaded by loadext.  Normally to get round this I use the following:

> > I could find nothing using this extension (no oracle owned processes
> > running, no oracle owned shared memory etc) but it still has a use count
> > of 2.  In the end I had to reboot the box to get rid it.  Anybody got
> > any ideas as to what went wrong?

> There are probably other kernel extensions "on top" of it.  Unless
> you unwind kernel extensions so that the kernel namespaces are
> removed in reverse order, you can't get rid of something "in the
> middle".
> I.e. the namespaces are in a linked list; later ones depend upon earlier
> ones.  You have to back them out one by one, which means unloading
> other extensions.  As you've discovered, rebooting and not firing
> up Oracle is the fastest way to go about your business.

> --
> Gary R. Hook / AIX PartnerWorld for Developers / These opinions are MINE
> ________________________________________________________________________

Yep, when I looked through the loadlist it appeared to have the nfs
extensions as dependencies of the oracle one.  The mind boggles.  

I think on the next scheduled maintenance of an oracle7 system I'll
investigate moving the stuff out of inittab and into an application
startup script to see if that induces a more couth behaviour.  Thanks.

--
Regards,
Clive

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Miljenko Jandr » Thu, 20 Dec 2001 01:15:30


Let me correct myself: with oracle 8 there is a new version of
"loadext" that has a command line option for unloading pw-syscall.
Type "loadext -?" or "loadext -h" and it will tell you how. And as far
as I can remember, it can't load/unload the old version of pw-syscall,
just the new one.....

Sorry, I am not at the AIX box at the time so I can't look up more
details.

mj



>On Sat, 15 Dec 2001 19:33:14 +0100, Clive Sparkes

>>Doing an oracle7 to 8 upgrade the pw-syscall4.1 kernel extension cannot
>>be unloaded by loadext.  Normally to get round this I use the following:

>>/* unload the old pw-syscall4.1 without reboot */
>>[...]
>>I could find nothing using this extension (no oracle owned processes
>>running, no oracle owned shared memory etc) but it still has a use count
>>of 2.  In the end I had to reboot the box to get rid it.  Anybody got
>>any ideas as to what went wrong?

>>--
>>Regards,
>>Clive

>Gosh, this stuff went right over my head. However, I did have the same
>problem once or twice, and was able to recover from it. If I
>understand you correctly the behaviour changed when oracle was
>upgraded from 7 to 8. I believe  Oracle 8 provides a different
>pw-syscall which should be installed and this version has an command
>line option for unloading. It will tell you about it if you run it
>with -?. pw-syscall that comes with oracle 7 has no command line
>options (or they are undocumented).

>If I am off the target, oh well, at least I tried...

>mj

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Clive Sparke » Thu, 20 Dec 2001 02:00:59



> Let me correct myself: with oracle 8 there is a new version of
> "loadext" that has a command line option for unloading pw-syscall.
> Type "loadext -?" or "loadext -h" and it will tell you how. And as far
> as I can remember, it can't load/unload the old version of pw-syscall,
> just the new one.....

> Sorry, I am not at the AIX box at the time so I can't look up more
> details.

> mj

<- snip of previous ->

I know the oracle8 loadext can't unload the pw-syscall4.1, that's why I
use the little c proglet, unfortunately it failed this time.  There's
some other boxes I have to upgrade in the future but they have some O/S
upgrades scheduled first & I'll take the opportunity to move
pw-syscall4.1 out from inittab.

--
Regards,
Clive

 
 
 

Problem with pw-syscall4.1 & sys_kuload

Post by Clive Sparke » Fri, 21 Dec 2001 18:38:53


< - snip ->

Quote:> Is this supported?

Well it's a valid system call.

Quote:

> If not, don't use it on production.

> If not in production... Reboot.

Rebooting is effective :-)  
But it adds an extra half hour to the upgrade process and you know how
much customers hate outage.

Quote:

> But, I'm impressed!

> I think you're mad... But I'm impressed!

Not quite mad yet, slightly deranged maybe.

It has worked successfully in the past, but only when the kernel
extension was loaded from an application startup script and not from
inittab, as Gary Hook suggested in an earlier reply this would be
because the extension was loaded after everything else and had no
dependencies.

Anyway there's only a few machines left to upgrade and after that the
problem disappears as the vendor has supplied a tool (the oracle8
loadext) which does the job.

--
Regards,
Clive

 
 
 

1. lost root pw on my sun box...need help resetting pw

  I'm running Solaris 8...how do I go about of resetting the root pw?  I
know it has something to do with booting up with the Solaris install cd and
doing something...any help would be is appreciated.  I'm new to Solaris so
bear with  my me.  Thank!

2. f77 compilation of INCLUDE statements

3. Resetting pw after account expires shows pw in clear

4. mounting floppies, how?

5. Hashed PW's more secure than encrypted PW's?

6. Updating the Kernel

7. IMAP4 & Linux (with shadow pw's)

8. 3Com ethernet & compaq deskpro xl problem

9. Shadow PW & User Expiry

10. Tin: logon news server with username & pw?

11. pw & root privilages

12. &&&&----Looking for a unix shell------&&&&&

13. ppp && PPPoE && ADSL && net && buffer(s)