Subject: Internal error when recreating a control file and password file is missing. Type: PATCH Creation Date: 04-JUN-1999 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Internal error when recreating a control file and password file is missing. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Initial version in which fix will appear: 8.1.7 External Description: Internal error when recreating a control file and password file is missing. Impact: Generates calls to tech support since the reason for the error isn't clear. How to determine rediscovery: Testcase provided was ... # edit init.ora and add REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE # add password file: $ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=foo entries=2 SVRMGR> alter database backup controlfile to trace; SVRMGR> shutdown cd $ORACLE_HOME/dbs mv orapw$ORACLE_SID orapw${ORACLE_SID}.bak # run your "create controlfile" script SVRMGR> connect internal SVRMGR> @your_script_to_create_controlfile <<---INTERNAL INFORMATION--->> Internal Description: We issue the internal error in kzsrsdn() if when opening the password file, we get a status of KZSRSNFN or KZSRSFAT. In the case of the password file being missing, KZSRSNFN is what is returned. Resolution: Altered the error checking code to generate an appropriate external error i.e. ORA-1990 "error opening password file '%s'" for KZSRSNFN. Also change the error for KZSRSFAT to ORA-1995. Testing Done: short regress, tkzgsuit Files changed: kzsr.c File1: /ade/nireland_symphony/rdbms/src/server/security/dac/kzsr.c File2: /ade_ukddr/nireland/.ade//nireland_bug-878968/rdbms/src/server/security/dac/kzsr.c#0 3c3 < "$Header: kzsr.c 28-may-99.16:11:33 nireland Exp $ "; --- > "$Header: kzsr.c 23-mar-99.20:52:59 pmothkur Exp $ "; 42,43d41 < nireland 05/28/99 - Don't issue internal error when password file not < found; issue external one instead. #878968 535,536c533 < if (bit(status, KZSRSNFN)) /* not found ? */ < kzsrsec(OER(1990)); --- > ASSERTNM1(!bit(status, KZSRSNFN | KZSRSFAT), OERINM("kzsrsdn: 1"), status); 538,540d534 < if (bit(status, KZSRSFAT)) /* was it fatal */ < kzsrsec(OER(1995)); < Procedures changed (pertinent): kzsrsdn() Integration: Will be checked into RDBMS_MAIN ADE View Name: nireland_symphony ADE Transaction ID: /ade_ukddr/nireland/.ade//nireland_bug-878968 Reviewed by: SGKRISHN (owner kzsr.c) asurpur (security guru) Can this be backported to older releases? (if not, justification) Yes, to any V8 --- Defect Analysis ---- History: Introduced with V8 Suggested Contact: Nick Ireland Defect Type: Code Developer time to fix defect: (in multiples of 8 hour days) 0.3 Additional action taken: Lessons learned for bug prevention: Lessons learned for bug detection: