RFR: 8264413: Data is written to file header even if its CRC32 was calculated [v2]

Yi Yang yyang at openjdk.java.net
Tue Mar 30 13:49:46 UTC 2021


> Many tests under `runtime/cds/appcds/dynamicArchive` are crashed when turning on VerifySharedSpaces, VM reports inconsistent crc32 between dumptime and runtime(See detailed content on JBS attachments):
> 
> $ diff dump.log run.log
> 17c17
> < - base_archive_is_default:        0
> ---
>> - base_archive_is_default:        1
> 19c19
> < - base_archive_name_size:         0
> ---
>> - base_archive_name_size:         113
> 
> The root cause is that even if the CRC32 is calculated(Line 1902), ArchiveBuilder is still writing data to FileMapInfo(Line 1903):
> 
> https://github.com/openjdk/jdk/blob/4ea6abfbd1818fa7049bc4f6e46d568e842acb34/src/hotspot/share/memory/archiveBuilder.cpp#L1091-L1094
> 
> https://github.com/openjdk/jdk/blob/4ea6abfbd1818fa7049bc4f6e46d568e842acb34/src/hotspot/share/memory/filemap.cpp#L1236-L1251
> 
> Now the expected CRC32(serialized in CDS archive) is different from the calculated ones at runtime. This patch addresses this problem, it writes base_archive_name and size into header **before** calculating CRC32(if needed).
> 
> Thanks~
> Yang

Yi Yang has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:

  Data is written to file header even if its CRC32 was calculated

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3261/files
  - new: https://git.openjdk.java.net/jdk/pull/3261/files/c5a051aa..40b70a2a

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3261&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3261&range=00-01

  Stats: 4 lines in 2 files changed: 1 ins; 2 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3261.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3261/head:pull/3261

PR: https://git.openjdk.java.net/jdk/pull/3261


More information about the hotspot-runtime-dev mailing list