Oddly, when I extracted this position from the log and replayed it, I got the right move:
milhouse: id 1: [-3] ... researching after failing high. 3: 19-16 12x19 [137] 5: 19-16 12x19 23x7 26-31 [134] 7: 19-16 12x19 23x7 6-10 7-2 26-31 [137] 9: 19-16 12x19 23x7 6-9 7-2 26-31 2-6 31-27 [137] 11: 19-16 12x19 23x7 6-9 7-2 26-31 2-6 31-27 20-16 27-32 [132] 13: 19-16 12x19 23x7 6-10 7-2 26-31 2-6 10-15 6-10 15-19 10-15 19-23 ... [144] 15: 19-16 12x19 23x7 6-10 7-2 26-31 20-16 31-27 2-6 10-15 16-11 27-32 11-8 [145] 17: 19-16 12x19 23x7 6-10 20-16 26-31 7-2 10-15 16-11 15-19 2-6 19-23 11-7 [129] 19: 19-16 12x19 23x7 6-10 20-16 26-31 25-22 10-15 7-2 31-27 16-11 15-19 2-6 [128] 21: 19-16 12x19 23x7 6-10 20-16 10-15 7-2 15-19 16-11 26-31 25-22 31-27 21-17 [128] ... researching after failing high. 23: 19-16 12x19 23x7 6-10 25-22 10-15 7-2 26-30 2-7 15-19 7-11 19-23 11-15 [7420] 25: 19-16 12x19 23x7 6-10 25-22 10-15 7-2 15-19 2-7 26-30 7-11 19-23 11-15 [7428] ... researching after failing high. 27: 19-16 12x19 23x7 6-10 25-22 10-15 7-2 15-19 2-7 26-30 7-11 19-24 11-15 [7512] 29: 19-16 12x19 23x7 6-9 25-22 9-14 20-16 26-31 7-2 31-27 16-11 27-32 2-6 [7516] final score = 7516 175.253 seconds elapsed. ... 47783648 nodes searched, 24123999 nodes evaluated ... avg branching factor 1.80 ... 388604 nodes ordered ... 3684106 pv hits, 2544492 pv misses (59.15%) transposition tables ... 23596225 gets (2540472 tier0 / 6252127 tier1 / 14803626 failed) ... 9901700 puts (1812362 tier0 / 8089338 tier1) (2856247 alpha, 139002, 6906451 beta) ... 20062999 chinook database accesses.
I don’t know what went wrong during the game. Very odd.
Addendum: Okay, I’m confused. Perhaps I’m reading the analysis Cake did of the game incorrectly, because 27-23 wasn’t a valid choice here. I’ll try to decipher what’s up later.
Additional progress has been made on milhouse though: thanks to some thoughtful hints from Ed Trice (thanks Ed) I think I finally resolved the problem with Chinook DB access once we hit the endgame. I have added a quiescence search to resolve capture positions properly, and it seems to past nearly all of the tests it used to fail. I say nearly all, because I have discovered a single test which still fails, shifting back from a loss to a draw, and back to a loss as iterative deepening occurs. Not sure what that’s about yet.