Showing results for 
Search instead for 
Did you mean: 

HPUX-ia64 Error: 22: Invalid argument

Frequent Advisor

HPUX-ia64 Error: 22: Invalid argument

Hello All,


Can somebody explain me what is HPUX-ia64 Error: 22: Invalid argument error this error bascially appears most of the time while oracle FS gets an IO error.But i have checkd several times there are no IO errors recorded in syslog or dmesg.what could be the culprit all disks,LV,VG are online


for eg:


ORA-00204: error in reading (block 825, # blocks 64) of control file

ORA-00202: control file: '/oracle/ALRN/control/ALRN01.ctl'

ORA-27091: unable to queue I/O

ORA-27072: File I/O error

HPUX-ia64 Error: 22: Invalid argument

Additional information: 4

Additional information: 825

Additional information: -1



root:/appl/oracle/MOT/rman/rcv# oerr ora 00204

00204, 00000, "error in reading (block %s, # blocks %s) of control file"

// *Cause:  A disk I/O failure was detected on reading the control file.

// *Action: Check if the disk is online, if it is not, bring it online and try

//          a warm start again.  If it is online, then you need to recover

//          the disk.




Also if someone knows oracle please let me know of this ora errors in the above context.



P.S. This thread has been moved from HP 9000 to HP-UX > databases.
-HP Forum Moderator

Honored Contributor

Re: HPUX-ia64 Error: 22: Invalid argument

from /usr/include/sys/errno.h: errno 22 = EINVAL /* Invalid argument */


[EINVAL] Invalid argument. Some invalid argument (such as unmounting a device that is not currently mounted, mentioning an undefined signal in signal() or kill(), or reading or writing a file for which lseek() has generated a negative pointer). Also set by the math functions described in the (3M) entries of this manual.


So the Oracle message matches the description of the Unix standard error 22. Assuming that the online diagnostics and reporting system are working correctly, this is likely a downsized lvol. What this means is that the lvol containing the control file may have been reduced (lvreduce) in the past and now the filesystem is larger than the disk. The filesystem code is trying to read (lseek) an address that is beyond the end of the disk. Reducing an lvol must be the last step after reducing the filesystem size.


To verify this, run this command: 

bdf /oracle/ALRN/control/ALRN01.ctl

 Divide the first number under kbytes by 1024 to obtain fsMBytes. Then use lvdisplay to show the size of the lvol (LV Size). The result of the fsMBytes calculation must be the same or less than the lvol. If fsMBytes is larger, the filesystem is too large and all data past the lvol size is unaccessible (errno 22). The easiest fix is to extend the lvol (lvextend -L) to the fsMBytes value found with bdf.






Bill Hassell, sysadmin