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

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P5
    • Resolution: Fixed
    • Affects Version/s: 8u20, 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Subcomponent:
      gc
    • Introduced In Version:
      9
    • Resolved In Build:
      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

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: