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

VMError::report uses %d to print what might be a long value

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P4 P4
    • 7
    • 7
    • hotspot
    • None
    • generic
    • generic

      ###@###.### wrote (while discussing bug-ID 6695810):

       Based on values on stack C2 requested not 16 bytes
       but 8Gb + 16 bytes:

       0xfffffd7fec264440: 0x0000000200000010 0xfffffd7fff01c8e2
       0xfffffd7fec264450: 0x00000000000000d7 0xfffffd7ffe5afdc0

       0x00d7 is line number 215:

       # java.lang.OutOfMemoryError: requested 16 bytes for Chunk::new. Out of swap space?
       #
       # Internal Error (allocation.cpp:215), pid=4425, tid=12

       There is bug in error report code which use %d to print long value:

       void VMError::report(outputStream) {
       ...
                st->print("# java.lang.OutOfMemoryError: ");
                if (_size) {
                  st->print("requested ");
                  sprintf(buf,"%d",_size);


      vmError.hpp line 61 defines _size:

        size_t _size;

      which on 64-bit platforms will be defined as something like ulong_t

            zgu Zhengyu Gu
            tbell Tim Bell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: