Bug #10448

Updated by Joshua M. Clulow over 2 years ago

With the recent updates to @wsdiff@, it seems we've regressed on the ability to correctly diff certain files: 

 18:34:51 + /opt/onbld/bin/wsdiff -r artefacts/wsdiff.txt previous/proto/root_i386 current/proto/root_i386 
 18:37:48 platform/i86xpv/kernel/amd64/unix 
 18:38:27 platform/i86pc/kernel/amd64/unix 
 18:41:54 etc/motd 
 18:45:40 usr/sbin/iasl 
 18:46:14 usr/sbin/acpixtract 
 18:46:15 usr/sbin/acpidump 
 19:38:36 usr/lib/spell/hlistb 
 19:38:36 Exception in thread Thread-2: 
 19:38:36 Traceback (most recent call last): 
 19:38:36     File "/usr/lib/python2.7/", line 801, in __bootstrap_inner 
 19:38:36     File "/opt/onbld/bin/wsdiff", line 1233, in run 
 19:38:36       compareOneFile(base, ptch, False) 
 19:38:36     File "/opt/onbld/bin/wsdiff", line 1277, in compareOneFile 
 19:38:36       return compareBasic(base, ptch, quiet, fileType) 
 19:38:36     File "/opt/onbld/bin/wsdiff", line 1112, in compareBasic 
 19:38:36       difference(fileName, fileType, diffs) 
 19:38:36     File "/opt/onbld/bin/wsdiff", line 195, in difference 
 19:38:36       log_difference(f, dtype, diffs) 
 19:38:36     File "/opt/onbld/bin/wsdiff", line 212, in log_difference 
 19:38:36       print(diffs[:diffs_sz_thresh], file=log) 
 19:38:36 UnicodeEncodeError: 'ascii' codec can't encode characters in position 64-66: ordinal not in range(128) 

 Note that @usr/lib/spell/hlistb@, a binary data file, differs by two bytes one byte between the two workspaces: 

 root@jenkins-oi0:~# diff \ 
     <(LANG=C od -t x1 /export/jenkins/workspace/wsdiff/previous/proto/root_i386/usr/lib/spell/hlistb) \ 
     <(LANG=C od -t x1 /export/jenkins/workspace/wsdiff/current/proto/root_i386/usr/lib/spell/hlistb) 

 < 0014760 d7 f1 1a 93 1a d8 7e e8 98 bf ff a9 7c de 89 b1 
 > 0014760 d7 f1 1a 93 1a d8 7e e8 98 7f ce a9 7c de 89 b1 

 Richard Lowe and I have previously noticed that @hlistb@ (and @hlista@) occasionally differ by one or two bytes byte for no reason we've yet been able to determine -- but we noticed this because prior to the changes, @wsdiff@ _did_ correctly render the differences.