Hi,

> -----Original Message-----
> From: Alan Bateman [mailto:alan.bate...@oracle.com]
> Sent: Thursday, March 12, 2020 5:40 PM
> To: Yangfei (Felix) <felix.y...@huawei.com>; core-libs-dev@openjdk.java.net
> Subject: Re: RFR(S): 8240734: ModuleHashes attribute not reproducible
> between builds
> 
> On 12/03/2020 09:30, Yangfei (Felix) wrote:
> > So for the hashed to be stored in A, we may need relations like: B requires 
> > A,
> and C requires A.  Am I right?
> >
> Right, I see there was a typo in my mail, sorry about that. It might help to 
> draw
> the DAG and then reverse the edges to easily identify the modules where the
> hashes will be stored.
> 

We did a quick try with three modules. The new test is uploaded to [1].  

Two problems here:  
a>  hash values are different for two different test run.  This is illustrate 
in [2].  I think this is introduced by the SHA-256 algorithm.  
    I didn't mention that our local consistency check is carried out in a 
specialized environment which avoids such a problem.  
    This means we cannot compare the jmod files with Files.mismatch directly in 
regular testing environment.  

b>  Looks like the reported issue cannot be reproduced by a small number of 
modules.  We tried [1] many times and it seems that the order of the two module 
hashes is stable.  
    Note: java.base module records hashes of 67 other modules.  

Suggestions?  

[1]
https://bugs.openjdk.java.net/secure/attachment/87281/ModuleHashOrderTest.java

[2]
Classfile 
/home/sunjianye/openjdk13-community/jdk/JTwork/scratch/jmods-first/cl|  
Classfile /home/sunjianye/openjdk13-community/jdk/JTwork/scratch/jmods-second/
    Last modified Mar 12, 2020; size 399 bytes                                  
 |    Last modified Mar 12, 2020; size 399 bytes
    SHA-256 checksum 
1a8ea671cd45ffb96287d690e383a0f80303111ac51519271a097007b8e0|    SHA-256 
checksum b7b0ce1af32eb74d2185e4feced2f25ae23ef2b3830b1fe2b7471ba9b34
    Compiled from "module-info.java"                                            
 |    Compiled from "module-info.java"
  module ma                                                                     
 |  module ma
    minor version: 0                                                            
 |    minor version: 0
    major version: 57                                                           
 |    major version: 57
    flags: (0x8000) ACC_MODULE                                                  
 |    flags: (0x8000) ACC_MODULE
    this_class: #2                          // "module-info"                    
 |    this_class: #2                          // "module-info"
+ +-- 51 lines: super_class: 
+ +#0--------------------------------------------------|+ +-- 51 lines: 
+ +super_class: #0-------------------------------------------------
    #17                                     // src.ma                           
 |    #17                                     // src.ma
  ModuleHashes:                                                                 
 |  ModuleHashes:
    algorithm: #25                          // SHA-256                          
 |    algorithm: #25                          // SHA-256
    2                                       // hashes                           
 |    2                                       // hashes
    #27                                     // mb                               
 |    #27                                     // mb
    hash_length: 32                                                             
 |    hash_length: 32
    hash: [633a60ff4fa542d082dba41ced181633385574c6a801c843a23538559b63c239]    
 |    hash: [951bb41ce54aa1bc93edde4226eeaf38d73f6a54b9e9e150c73e8a48d109de57]
    #29                                     // mc                               
 |    #29                                     // mc
    hash_length: 32                                                             
 |    hash_length: 32
    hash: [815cb047f93ec3d22ae2889d32a7f687e00b41507abbb1b66a27d87c5c38459a]    
 |    hash: [e2c37c902bf8b84ebbb11a765b365ba0fc241772596a8e4091e0345d596a86e5]

Reply via email to