Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-27102 SVR4 Error: 12: Not enough space

lrpJun 1 2009 — edited Apr 1 2010
Our Oracle 11.1.0.7 database is running on Solaris 10 / Sunfire hardware. Unfortunately, we've been seeing our database crash and corrupt a datafile in the process several times. The key alert log message is below (which I've blanked out some info for security purposes):
KCF: write/open error block=0xbc28 online=1
file=6 /***************.dbf
error=27063 txt: 'SVR4 Error: 12: Not enough space
Additional information: -1
Additional information: 8192'

KCF: write/open error block=0x1571 online=1
file=57 *************.dbf
error=27063 txt: 'SVR4 Error: 12: Not enough space
Additional information: -1
Additional information: 8192'
Automatic datafile offline due to write error on
file 57: ***********.dbf
I've already done a forum search for the error codes but couldn't find any other post that matched my exact situation/code. The key coincidence here is that the number 8192 matches a value in my ulimit (stack size). Below is what I would currently see as my oracle user:
ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 8192  <-------------
cpu time (seconds, -t) unlimited
max user processes (-u) 29995
virtual memory (kbytes, -v) unlimited
Oracle's documentation doesn't give me much information on what ORA-27063 means. Does anybody else know how Oracle reports 'Error 12:" codes coming from the OS? What the "additional information: -1" or "additional information: 8192" means? I need this in my troubleshooting so we can measure and adjust the correct resource, instead of blindly increasing stack size or other resource parameters on the OS.

Comments

4c3880db-960a-4cd4-9bc7-412ae46c86f2
Answer

looks like this strategy might get me there ... first need to know the number of bytes per row for the inBuffImg with ...

    int bytesPerRow = inBuffImg.getWidth()/8;

    if (inBuffImg.getWidth()%8>0)

        bytesPerRow+=1;

then i get bit and byte positions with

    int bytePos = y*bytesPerRow + x/8;

    int bitPos = x%8;

then i get the bit value

    pixels = ((DataBufferByte)inBuffImg.getRaster().getDataBuffer()).getData();

    return (pixels[bytePos] >> bitPos) & 1;

Marked as Answer by 4c3880db-960a-4cd4-9bc7-412ae46c86f2 · Sep 27 2020
1 - 1
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Apr 29 2010
Added on Jun 1 2009
23 comments
17,125 views