in reply to Re^6: Hash order randomization is coming, are you ready?
in thread Hash order randomization is coming, are you ready?
Which makes me wonder whether your meditation isn't a little a) redundant; b) slightly scare mongery?
I think you missed the point. The order will change *every process*.
$ for i in {1..10}; do ./perl -le'%h=(1..20); print "$]: ",join "-", k +eys %h'; done; 5.017007: 1-13-5-15-19-9-17-11-7-3 5.017007: 13-19-5-17-9-15-1-7-3-11 5.017007: 13-7-19-15-5-1-11-17-3-9 5.017007: 17-13-3-7-15-1-9-5-11-19 5.017007: 17-9-3-11-7-15-1-19-5-13 5.017007: 19-1-11-5-9-3-15-17-7-13 5.017007: 9-19-3-17-7-11-13-15-1-5 5.017007: 1-11-15-3-19-17-7-13-9-5 5.017007: 19-7-13-1-5-17-9-3-11-15 5.017007: 5-19-9-1-13-17-7-3-15-11 $ for i in {1..10}; do perl -le'%h=(1..20); print "$]: ",join "-", key +s %h'; done; 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5 5.012004: 11-3-7-9-17-15-1-19-13-5
The order returned by 5.12.4 is what you should see on pretty much every modernish perl there has been released with the exception of 5.8.1 and 5.17.6 and later. And obviously in 5.17.6 the order changes pretty much every time.
What we discover when we per-process randomize the keys is that people actually depend on the key order more than they realize. When we make it random these dependencies become visible as bugs. I tend to consider them buggy originally, as minor changes to the history of the hash will produce roughly the same results as per-process randomization.
BTW, you *did* see that I said "none of this is new" right? So why the emphasis on "But that has always been the case"?
$world=~s/war/peace/g
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^8: Hash order randomization is coming, are you ready?
by BrowserUk (Patriarch) on Dec 03, 2012 at 20:08 UTC | |
by demerphq (Chancellor) on Dec 03, 2012 at 22:48 UTC | |
by BrowserUk (Patriarch) on Dec 04, 2012 at 01:13 UTC | |
by demerphq (Chancellor) on Dec 04, 2012 at 06:41 UTC | |
by BrowserUk (Patriarch) on Dec 04, 2012 at 06:59 UTC | |
| |
Re^8: Hash order randomization is coming, are you ready?
by jdporter (Paladin) on Dec 03, 2012 at 13:27 UTC | |
by demerphq (Chancellor) on Dec 03, 2012 at 22:54 UTC |