Тело обрезанное. Если добавить в конец два байта, то декодится:
tarantool> msgpack.decode(('84 10 CD 02 08 15 01 28 91 93 A1 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00 00 00 00'):gsub(' ', ''):fromhex())
---
- {33: [282, 999, 0, 0], 16: 520, 40: [['=', 3, 10000]], 21: 1}
- 31
...
в доке формат не нашел, но [282 - ok, 999 - ok, 0 - это меняется в upsert, 0 — тут по идее -1]
[['=', 3, 10000]] - это сам update(upsert) - тоже норм. остальное не знаю(
а обрезок это же особенность логирования? просто по длине все проблемные записи в логе были идентичны (ну и данные по размеру в общем-то тоже)
щас еще хlog мастера посмотрю, что там