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

Wrong predicate for checking whether the correct amount of symbol table entries have been processed in G1

    XMLWordPrintable

Details

    • gc
    • 9
    • b04

    Backports

      Description

        JDK-8027476 introduced parallel string and symbol table scan. This code includes a check whether the whole string and symbol table were processed or not.

        This check for symbol tables uses a predicate used for string table.

        E.g.
            guarantee(!_process_strings || SymbolTable::parallel_claimed_index() >= _initial_symbol_table_size,
                      err_msg("claim value "INT32_FORMAT" after unlink less than initial symbol table size "INT32_FORMAT,
                              SymbolTable::parallel_claimed_index(), _initial_symbol_table_size));

        must be changed to

            guarantee(!_process_symbols || SymbolTable::parallel_claimed_index() >= _initial_symbol_table_size,
                      err_msg("claim value "INT32_FORMAT" after unlink less than initial symbol table size "INT32_FORMAT,
                              SymbolTable::parallel_claimed_index(), _initial_symbol_table_size));

        This slipped through because when the symbol table is scanned always, regardless of whether the string table is scanned.

        Attachments

          Issue Links

            Activity

              People

                tschatzl Thomas Schatzl
                tschatzl Thomas Schatzl
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: