Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-5074836

(fs) MappedByteBuffer.force() throws IOException / ENOSPC


    • Type: Bug
    • Status: Resolved
    • Priority: P1
    • Resolution: Fixed
    • Affects Version/s: 1.4.2
    • Fix Version/s: 1.4.2_07
    • Component/s: core-libs
    • Labels:
    • Subcomponent:
    • Resolved In Build:
    • CPU:
    • OS:



        My ISV has one bug and could not provide standalone test case.

        the program exports data to database, it works fine with jdk1.4.1_06
        but fails with jdk1.4.2_02 , 1.4.2_04, 1.4.2_05.
        I assume the problem is related to libnio.so , when i swap it with jdk1.4.1_06's
        libnio.so , the program willnot fail(no Exception thrown).
        Below is error message during exception occuring

        5.07.04 14:33 com.sap.inst.jload.Jload logStackTrace
        SEVERE: java.io.IOException: Not enough space
                at java.nio.MappedByteBuffer.force0(Native Method)
                at java.nio.MappedByteBuffer.force(MappedByteBuffer.java:138)
                at com.sap.inst.jload.io.DataFile.putEntry(DataFile.java:287)
                at com.sap.inst.jload.db.DBTable.unload(DBTable.java:190)
                at com.sap.inst.jload.Jload.dbExport(Jload.java:172)
                at com.sap.inst.jload.Jload.executeJob(Jload.java:383)
                at com.sap.inst.jload.Jload.main(Jload.java:541)

        It could not be no enough space problem. since it works fine with jdk1.4.1_06
        and fails on jdk1.4.2x

        I provide a test landscape. to use this test landscape please follow below

        You can telnet suncc19 ( with your sun ID
        Then from suncc19, you can telnet
        Login lroot (root user)
        Pass sap

        cd /install/unix_pack
        Run ./testrun

        The file /install/unix_pack/testrun is a script. You could switch jdk version here

        #setenv JAVA_HOME /usr/j2sdk1.4.2_04 //this is jdk1.4.2_04
        setenv JAVA_HOME /usr/j2se // this is jdk1.4.1_06

        If test go through no exception happens, you have to stop program by contral + c
        Then check result at jload.log

        If test fails, you will see vm exit. You could check result in jload.log

        Test will pass with jdk1.4.1_06
        , will fail with jdk1.4.2x

        Ps: if you need reboot machine
        Switch to su - sunadm
        Then tyep stopsap all
        Wait until sap system stops completely
        Then you could reboot machine

        Blew oupput is result when i type command df -k before Exception occurs on
        test landscape machine

        /dev/dsk/c0t0d0s0 4129290 1928960 2159038 48% /
        /proc 0 0 0 0% /proc
        mnttab 0 0 0 0% /etc/mnttab
        fd 0 0 0 0% /dev/fd
        swap 4061256 104 4061152 1% /var/run
        swap 4065416 4264 4061152 1% /tmp
        /dev/md/dsk/d10 63566161 35139049 27791451 56% /data
        ###@###.### 10/15/04 21:30 GMT
        ###@###.### 10/15/04 21:31 GMT


            Issue Links



                • Assignee:
                  busersunw Btplusnull User (Inactive)
                  duke J. Duke (Inactive)
                • Votes:
                  0 Vote for this issue
                  1 Start watching this issue


                  • Created: