Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

DISKQUOTA error not allowing login

Swain
Regular Advisor

DISKQUOTA error not allowing login

Hello,

A user gets diskquota overdrwan error while loging in. Following are the troubleshoot I have done yet. But it did not resolve the case. When the user relogged in, the log file absorbed more than 6000 blocks and the same error occurred.

$ SHOW QUOTA /USER=ROLAND /DISK=DISK$AS:
User [DOMESTIC,ROLAND] has 6007 blocks used, 1007 OVERDRAWN,
of 5000 authorized and permitted overdraft of 1000 blocks on DISK$AS


$ dir DISK$AS:[ROLAND] /SIZE=ALLOCATION/GRAND_TOTAL

Grand total of 1 directory, 32 files, 6007 blocks.

SYSMAN> DISKQUOTA SHOW ROLAND /DEVICE=DKC400:
%SYSMAN-I-QUOTA, disk quota statistics on device DKC400: --
Node ALPHA
UIC Usage Permanent Quota Overdraft Limit
[DOMESTIC,ROLAND] 6007 5000 1000


$ dir/since=04-MAY-2010/size

Directory DISK$AS:[000000.ROLAND]

DECW$SM.LOG;2 0
DECW$SM.LOG;1 0

Total of 2 files, 0 blocks.
$ delete DECW$SM.LOG;*
%DELETE-W-FILNOTDEL, error deleting DISK$AS:[000000.ROLAND]DECW$SM.LOG;2
-RMS-E-FLK, file currently locked by another user
%DELETE-W-FILNOTDEL, error deleting DISK$AS:[000000.ROLAND]DECW$SM.LOG;1
-RMS-E-FLK, file currently locked by another user$ PIPE SHOW DEVICE/FILES disk$as: | SEARCH SYS$PIpe ROLAND
AMS_ 00005C90 [AS.ROLAND]DECW$SM.LOG;1
DTSESSION 000061BE [AS.ROLAND]DECW$SM.LOG;2

$ sh users ROLAND
OpenVMS User Processes at 4-MAY-2010 08:25:15.20
Total number of users = 1, number of processes = 2

Username Interactive Subprocess Batch
ROLAND 2
$ stop/id=00005C90
$ stop/id=000061BE
$ PIPE SHOW DEVICE/FILES disk$as: | SEARCH SYS$PIpe ROLAND
%SEARCH-I-NOMATCHES, no strings matched
$ dir/since=04-MAY-2010/size

Directory DISK$AS:[000000.ROLAND]

DECW$SM.LOG;2 585
DECW$SM.LOG;1 5342

Total of 2 files, 5927 blocks.
$ type DECW$SM.LOG
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
.
.
.
EXIT

$ delete DECW$SM.LOG;*

$ dir DISK$AS:[ROLAND]/SIZE=ALLOCATION/GRAND_TOTAL

Grand total of 1 directory, 30 files, 684 blocks.
SYSMAN> DISKQUOTA SHOW ROLAND /DEVICE=DKC400:
%SYSMAN-I-QUOTA, disk quota statistics on device DKC400: --
Node ALPHA
UIC Usage Permanent Quota Overdraft Limit
[DOMESTIC,ROLAND] 1073 10000 1000



During login:

SYSMAN> DISKQUOTA SHOW ROLAND /DEVICE=DKC400:
%SYSMAN-I-QUOTA, disk quota statistics on device DKC400: --
Node ALPHA
UIC Usage Permanent Quota Overdraft Limit
[DOMESTIC,ROLAND] 6007 5000 1000



Please suggest what else need to be checked.

Thanks,
Swain
39 REPLIES
Swain
Regular Advisor

Re: DISKQUOTA error not allowing login

$ type DECW$SM.LOG
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
.
.
.
EXIT

Search for 'INQUIRE' in login.com returned no string.
P Muralidhar Kini
Honored Contributor

Re: DISKQUOTA error not allowing login

Hi Swain,

>> During login:
>>
>> SYSMAN> DISKQUOTA SHOW ROLAND /DEVICE=DKC400:
>> %SYSMAN-I-QUOTA, disk quota statistics on device DKC400: --
>> Node ALPHA
>> UIC Usage Permanent Quota Overdraft Limit
>> [DOMESTIC,ROLAND] 6007 5000 1000

I guess you have given this command after the user ROLAND has
logged in.

When a user logs in, the LOGIN.COM procedure in that user's login directory executes first and then the login operation completes.
What does the LOGIN.COM in the ROLAND user directory contain?
Are they by any chance creating & populating the file "DECW$SM.LOG"?

Even though you have manually deleted the "DECW$SM.LOG"files, after
user ROLAND logs in these files appear again. Looks like the LOGIN.COM for ROLAND user is creating the "DECW$SM.LOG" files.

You can check the LOGIN.COM file for the ROLAND user.

Regards,
Murali
Let There Be Rock - AC/DC
P Muralidhar Kini
Honored Contributor

Re: DISKQUOTA error not allowing login

Hi Swain,

The DECW$SM.LOG log file is created by the session manager.

Does the LOGIN.COM procedure ask for input from the user?
If it does and the Session manager which is a GUI based tool
executes this login procedure then this problem can occur.

Regards,
Murali
Let There Be Rock - AC/DC
Volker Halle
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

looks like user ROLAND tries to log in via a DECwindows terminal. Check SYS$SYLOGIN and the user's LGICMD and all procedures that these procedures may call.

A SET TERM/INQUIRE must NOT be exectued if the process mode is NOT interactive.

Have the user try to login via a TELNET or LAT session, that should work.

Volker.
Hein van den Heuvel
Honored Contributor

Re: DISKQUOTA error not allowing login

>> 5000 authorized and permitted overdraft of 1000

That's just 2.5 MB.
How about starting with allowing 10 times that?

>> dir/since=04-MAY-2010/size

Use: $ DIR /SIZE=ALL /DATE=(CRE,MOD) [/SINC...]

>> %SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\


Like the other suggest.
Get rid of INQUIRE in scripts for non-interactive jobs
Actually... you may want to get rid of it completely, but that's an other topic.

Hein




Robert Gezelter
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

Please do a SHOW RMS on the system, and also do a SHOW DEVICE full on the relevant disk.

- Bob Gezelter, http://www.rlgsc.com
Hein van den Heuvel
Honored Contributor

Re: DISKQUOTA error not allowing login

re: $ type DECW$SM.LOG
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\
:
:


Volker... Your comment stands, but the reason is wrong.
This is the $ INQUIRE command, not $ SET TERM /INQU

Swain,

Do those dots (. . . . ) signify many, many, repeats?

So one of the scripts, like SYLOGIN.COM or LOGIN.COM is looping around a $ INQUIRE command, an failing over and over. That will eventually fill up any quota and I suppose you should be grateful that there was a low quota!

So did anything change in this area?

The INQUIRE command has nothing legal to talk to. It should not be executed. It should probably be in some bracnh after a test using F$MODE.

hth,
Hein


Swain
Regular Advisor

Re: DISKQUOTA error not allowing login

Thanks you all for the help!

>>>Are they by any chance creating & populating the file "DECW$SM.LOG"?

Yes, I have listed the content of log file above.

>>>Does the LOGIN.COM procedure ask for input from the user?

There is no entry of INQUIRE in login.com
please check my comment above [Search for 'INQUIRE' in login.com returned no string.]

>>>Check SYS$SYLOGIN and the user's LGICMD and all procedures that these procedures may call.

Volker,

LGICMD is login.com which contains no INQUIRE command

SYS$SYLOGIN contains SET TERMINAL/INQUIRE. If commenting that would solve the issue, my query would be that why is it not happening for other users.


>>>Please do a SHOW RMS on the system

Bob,

Following is the output. please let us know how does it help.

$ SHOW RMS
MULTI- | MULTIBUFFER COUNTS | NETWORK
BLOCK | Indexed Relative Sequential | BLOCK
COUNT | Disk Magtape Unit Record | COUNT
Process 0 | 0 0 0 0 0 | 0
System 32 | 0 0 0 0 0 | 8

Prolog Extend Quantity QUERY_LOCK
Process 0 0 System
System 0 0 Enabled

CONTENTION_POLICY
Process System
System Never

$ sh dev/fu dkc400

Disk ALPHA$DKC400:, device type RZ29B, is online, mounted, file-oriented device,
shareable, available to cluster, error logging is enabled.

Error count 0 Operations completed 68583921
Owner process "" Owner UIC [SYSTEM]
Owner process ID 00000000 Dev Prot S:RWPL,O:RWPL,G:R,W
Reference count 31 Default buffer size 512
Current preferred CPU Id 0 Fastpath 1
Total blocks 8380080 Sectors per track 113
Total cylinders 3708 Tracks per cylinder 20
Logical Volume Size 8380080 Expansion Size Limit 8589312

Volume label "USER" Relative volume number 0
Cluster size 9 Transaction count 32
Free blocks 2166912 Maximum files allowed 419004
Extend quantity 5 Mount count 1
Mount status System Cache name "_ALPHA$DKA0:XQPCACHE"
Extent cache size 64 Maximum blocks in extent cache 216691
File ID cache size 64 Blocks in extent cache 51327
Quota cache size 547 Maximum buffers in FCP cache 2724
Volume owner UIC [SYSTEM] Vol Prot S:RWCD,O:RWCD,G:RWCD,W:RWCD

Volume Status: ODS-2, subject to mount verification, file high-water marking,
write-back caching enabled.


Thanks,
Amaresh
Swain
Regular Advisor

Re: DISKQUOTA error not allowing login

>>>Do those dots (. . . . ) signify many, many, repeats?

Yes..that populates the log file and absorbs diskquota of teh user.

Thanks,
Swain
Volker Halle
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

please have a look at chapter 2.10 in the DECwindows Motif V1.2-5 release notes. There is example code to be put info SYLOGIN to exit in case of DECwindows session manager logins:

http://www.itec.suny.edu/scsys/vms/ovmsdoc073/v73/6537/6537pro_007.html

Do other users log in via a DECwindows terminal as well ? Or do they login via TELNET ?

Volker.
Volker Halle
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

also look at the code in SYLOGIN.COM. It seems to incur some kind of loop, as it is printing the same error over and over again.

Maybe some 'ON ERROR THEN...' going back in a loop ?!

Volker.
Robert Gezelter
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

Ok. The RMS parameters, cluster size, and extend size are not unusual.

I agree with Hein and Volker. The problem lies in an INQUIRE command that is being executed.

- Bob Gezelter, http://www.rlgsc.com
Swain
Regular Advisor

Re: DISKQUOTA error not allowing login

$ type sys$manager:SYLOGIN.com
$!
$!
$ set noon
$ mode = f$mode()
$ tt_devname = f$trnlnm("TT")
$ session_mgr_login = (mode .eqs. "INTERACTIVE") .and. -
(f$locate("WSA",tt_devname) .ne. f$len(tt_devname))
$ session_detached_process = (mode .eqs. "INTERACTIVE") .and. -
(f$locate("MBA",tt_devname) .ne. f$len(tt_devname))
$ unknown_devtyp = (mode .eqs. "INTERACTIVE") .and. -
(f$getdvi("sys$command","devtype") .eq. 0)
$!
$ if (mode .eqs. "INTERACTIVE") .and. unknown_devtyp .and. .not. -
(session_mgr_login .or. session_detached_process)
$ then
$ SET TERMINAL/INQUIRE
$ endif
$!
$ if (mode .eqs. "INTERACTIVE") .and. .not. -
(session_mgr_login .or. session_detached_process)
$ then
$ SET CONTROL=T
$ endif
$!
$ IF f$getdvi ("sys$output:", "trm")
$ THEN
$ devnam = f$getdvi ("sys$output:", "devnam" ) - "_" - "_"
$ devnam = f$extract (0, 2, devnam)
$ if devnam .eqs. "WT" then goto skip_inquire
$ if devnam .eqs. "TW" then goto skip_inquire
$ if devnam .eqs. "FT" then goto skip_inquire
$ if devnam .eqs. "RT" then goto skip_inquire
$ set terminal/device=VT200/regis/insert
$ skip_inquire:
$ set terminal/insert
$ ENDIF
$!
$ if (mode .eqs. "INTERACTIVE") then set terminal /insert
$!
$ type sys$manager:notice.txt
$ @sys$manager:ams$setup.com
$!---------------------------------------------------------------------------
$! For Tektronix Netstation
$!---------------------------------------------------------------------------
$ @tek$tools:tek_sylogin.com
$!---------------------------------------------------------------------------
$! RS1 Related commands
$!---------------------------------------------------------------------------
$! define rsuserhome rs1home
$ @disk$applications:[rs1r4]rs1log.com
$ rs1ini :== @disk$applications:[rs1r4]rs1ini.com
$!---------------------------------------------------------------------------
$!
$ edt :== edit/edt
$ eve :== edit/tpu
$ home :== set default sys$login
$ login :== @sys$manager:sylogin.com
$
$!---------------------------------------------------------------------------
$! VAXLINK2 is for Reflection 4 connections
$!---------------------------------------------------------------------------
$ vaxlink2 :== $disk$tools:[reflections]vaxlink2
$!---------------------------------------------------------------------------
$ where :== show logical sys$node
$ who :== show user/full
$ wide :== set terminal/width=132
$ world :== set protection=(W:re)
$!
$ define/nolog qca$print1 postscript1
$!
$ exit

Please check.

Thanks,
Swain
RBrown_1
Trusted Contributor

Re: DISKQUOTA error not allowing login

The easiest thing to do is turn on verify and see exactly what is causing the log file to fill up and then work backward from there.

At first glance I don't see anyting wrong with your SYLOGIN file, but there things I am not sure about. AND, this file calls other command files --- what do they do? Could they be causing the problem?

Hence my suggestion to enable VERIFY. Have fun.
John Gillings
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

As Hein has pointed out, 6007 blocks is 2.9MB, worth about TWO HUNDREDTHS OF A CENT at current storage costs.

Why are you wasting yours and everyone elses time worrying about it?

Increase the quota and be done with it!
A crucible of informative mistakes
Steven Schweda
Honored Contributor

Re: DISKQUOTA error not allowing login

> Why are you wasting yours and everyone
> elses time worrying about it?

An RZ29B is not very large.

> Increase the quota and be done with it!

If one of the *LOGIN.COM procedures is stuck
in a loop, then giving it more space to fill
may not let anyone be done with anything.

> [...] That will eventually fill up any
> quota [...]

He's right, you know.

> [...] [Search for 'INQUIRE' in login.com
> returned no string.] [...]

LOGIN.COM can invoke other procedures. Did
you also search for "@"? Same for
SYLOGIN.COM. (I can see "@" in what you
posted.)

> [...] other command files [...]

He's right, you know.

Do other users have this problem, or only
this user? (All users suggests SYLOGIN.COM,
one user suggests (his) LOGIN.COM.)
P Muralidhar Kini
Honored Contributor

Re: DISKQUOTA error not allowing login

Hi Swain,

Put the "$SET VERIFY" command in the LOGIN procedure. This will log traces
for every command that gets executed in the command procedure. This should
help in debugging to find out the cause for the problem.

Also as already pointed out, the SYLOGIN procedure calls other command
procedure and we dont know what they are doing. You can use trial and error
method by commenting those command procedure one at a time and to check
if the problem occurs or not.
The best way ofcourse is to add a "$SET VERIFY" and check the traces logged.

i guess increasing the quota will only delay the occurrence of the problem
and may not solve the problem.

Is the problem also seen by other users in the system who does a login
in a similar way to ROLAND user?

Regards,
Murali
Let There Be Rock - AC/DC
Volker Halle
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

if you carefully look at the error message:

%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\

you'll find that this messages does NOT seem to to be issued by using the DCL $ INQUIRE command in non-interactive mode or by using SET TERMINAL/INQUIRE. The former will work and the latter will issue a message like:

...
$ set term/inq
%SET-W-NOTSET, error modifying DSA1:
-SET-E-INVDEV, device is invalid for requested operation

You'll need to find out, exactly WHICH command in which of the command files run during login for this user will cause this error. Include a couple of ' $ WRITE SYS$OUTPUT "now in xyz.COM"' inside those procedures. If you want to make this less irritating for your other users, use:

$ IF F$EDIT(f$getjpi("","USERNAME"),"TRIM") .EQS. "ROLAND" THEN $ WRITE SYS$OUTPUT ...

Volker.

Robert Gezelter
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

Note that Volker's comment about tracing in SYLOGIN applies in a more global sense than merely tracing.

Since SYLOGIN is executed by every user, and indeed virtual every process that starts on an OpenVMS system (at least every process that has a CLI context), the correct way to enable VERIFY is to limit VERIFY mode to the individual user, to wit:

$ IF F$EDIT(f$getjpi("","USERNAME"),"TRIM") .EQS. "ROLAND" THEN $ SET VERIFY

Some discussion about modifying SYLOGIN, and the issues involved were the subject of the most recent installment "SYS$MANAGER:SYLOGIN.COM - Flexibility requires prudence" of The OpenVMS Consultant on OpenVMS.org (see http://www.openvms.org/stories.php?story=10/04/22/1564554 ).

- Bob Gezelter, http://www.rlgsc.com
Swain
Regular Advisor

Re: DISKQUOTA error not allowing login

>>>this file calls other command files --- what do they do? Could they be causing the problem?

I searched in all command procedures in SYLOGIN.COM for INQUIRE command.

$ type sys$manager:ams$setup.com
$!
$ ams :== @ams$code:[com]define_logicals.com
$ amslite :== @ams$code:[com]ams_lite.com
$!
$ exit


$ sea ams$code:[com]define_logicals.com inquire
$ inquire P1 "Enter application name (? for help)"
$ inquire P2 "Enter database (? for help)"
$ if (P2 .eqs. "?") then inquire P2 "LIVE, TEST"
$ inquire P3 "Enter site (? for help)"
$ if (P3 .eqs. "?") then inquire P3 'default_site
$ inquire P4 "Enter version (? for help)"
$ if (P4 .eqs. "?") then inquire P4 "PROD, BETA1"

But, these run for all other users and they face no issue.

>>>Do other users have this problem, or only
this user?

No. Issue is with this user only.

If user logs in through the hummingbird tool, he gets the blue screen at start-up saying "Starting new session for open VMS"which gets hung. If however he gets into his ams account through someone else's login (i.e.. set host alpha - login), he can get to the terminal window.

Hope it helps.


Thanks Steven! you have answered all other queries.



Thanks,
Swain
Volker Halle
Honored Contributor

Re: DISKQUOTA error not allowing login

Swain,

the best way to further diagnose this problem would be to instrument SYLOGIN.COM with a SET VERIFY for exactly this user. Did you try that ?

Do other users also use the 'Hummingbird' tool (you're talking about Exceed ?) ?

Volker.
Zeni B. Schleter
Regular Advisor

Re: DISKQUOTA error not allowing login

Sounds like one of the decwindows detached processes is hitting an Inquire. What I do in my login.com is
$ Save_Verify := 'F$Verify(0)
$ if f$mode().eqs. "OTHER" then exit .

First line was for FTP copies and the next was for decwindows detached processes.

-for what it is worth-
RBrown_1
Trusted Contributor

Re: DISKQUOTA error not allowing login


This is a problem when logging in to decwindows (ie, the gui). DECW$SM.LOG is a decwindows log file.

You say that if ROLAND logs in by SET HOST, the he doesn't have the problem. But if he logs in by SET HOST, then he is not logging in to the gui, so he would not have the problem.

You say that other users do not have the problem. Do they ever log in to the gui?
Hein van den Heuvel
Honored Contributor

Re: DISKQUOTA error not allowing login

This is somewhat intriguing...

Swain>> I searched in all command procedures in SYLOGIN.COM for INQUIRE command.

We hope you searched for "INQ", not just the full word.


Many warned about not using the inquire command except for interactive sessions.
But it IS valid in batch jobs.
It will just read the next line as the value.

inquire is a build-in DCL command, not an image. It is hard to see how it would ever create an error message with anything other then DCL- or just the plain (RMS) message. I tried:
- Long line: %RMS-W-TNS, terminator not seen
- : %RMS-W-BES, bad escape sequence
- ^Z : silent

The only way i can get the specific output is convoluted, and has nothing to do with the inquire dcl command.
Watch this....

$ create tmp.tmp
$ set prot=(o,s,g,w) tmp.tmp
$ define INQUIRE tmp.tmp
$ write sys$output F$file("INQUIRE","ORG")
%SYSTEM-F-NOPRIV, insufficient privilege or object protection violation
\INQUIRE\


:-)


Hein





I searched in all command procedures in SYLOGIN.COM for INQUIRE command.