I think I've reproduced the error:
Code:
alias largehash.write {
  var %n = $$1, %i = 1

  while (%i <= %n) {
    bset &b %i $base($iif($isbit(%i,1),A5,5A),16,10)
    inc %i
  }
  if ($hget(largehash)) { hfree largehash }
  hmake largehash
  hadd -sb largehash item &b
  noop $hget(largehash,item,&c)
  echo -a largehash:item is $bvar(&c,0) in size
  hsave -sb largehash largehash.hash
}

alias largehash.read {
  if ($hget(largehash)) { hfree largehash }
  hmake largehash
  hload -sb largehash largehash.hash
  noop $hget(largehash,item,&b)
  echo -a largehash:item is $bvar(&b,0) in size
}


Code:
/largehash.write 65535
-> * Added item 'item' to hash table 'largehash'
-> largehash:item is 65535 in size
-> * Saved hash table 'largehash' to 'largehash.hash'

/largehash.read
-> * Loaded hash table 'largehash' from 'largehash.hash'
-> largehash:item is 65535 in size

/largehash.write 65536
-> * Added item 'item' to hash table 'largehash'
-> largehash:item is 65536 in size
-> * /hsave: error saving hash table 'largehash' to 'largehash.hash' (line 13, test.mrc)


It would appear that there is some issue with /hsave'ing binary items larger than 65535 bytes.

Last edited by Sais; 05/10/07 06:26 PM.

Sais