[sheepdog] compatibility of dog command between new and old cluster

Ruoyu liangry at ucweb.com
Fri Jul 18 04:35:46 CEST 2014


Hi there,

Should we upgrade SD_PROTO_VER to 0x03 to avoid it because vdi object 
size is different since ledger object is introduced?

On 2014年07月15日 17:31, Ruoyu wrote:
> Once I submit a read request by new version dog command (ledger object 
> supported) to a old version cluster (ledger object not supported), the 
> cluster is corrupted.
>
> Error messages in sheep.log:
>
> Jul 15 11:17:26 ERROR [gway 24285] default_read_from_path(291) failed 
> to read object 80e4a2b600000000, 
> path=/mnt/sheepdog/obj/80e4a2b600000000, offset=0, size=12587576, 
> result=4198976, Success
> Jul 15 11:17:26 ERROR [gway 24285] err_to_sderr(114) 
> oid=80e4a2b600000000, Success
> Jul 15 11:17:26 ERROR [gway 24285] gateway_replication_read(270) local 
> read 80e4a2b600000000 failed, Network error between sheep
> Jul 15 11:17:26 INFO [main] md_remove_disk(349) /mnt/sheepdog/obj from 
> multi-disk array
> Jul 15 11:17:26 ERROR [gway 24285] sheep_exec_req(1114) failed Network 
> error between sheep, remote address: 192.168.1.2:7000, op name: READ_PEER
>
> As you can see, vdi object size was changed, expected 12587576, 
> actually 4198976. As a result, sheep thought the disk had 
> unrecoverable problem so that it must been removed. And then, a 
> recovery will be triggered. The behavior is not so robust.
>
> Maybe we need something like version control to avoid this issue. What 
> is your opinion?





More information about the sheepdog mailing list