graphite-project/carbonate

struct.error: unpack requires a string argument of length 12

Hemantt91 opened this issue · 2 comments

I am trying to sync whisper file from my another node from cluster.
I am getting below error. I have checked for corrupted whisper file with whisper-info but result was Zero
Below is the Traceback :

Traceback (most recent call last):
File "/usr/bin/carbon-sync", line 10, in
load_entry_point('carbonate==0.2.2', 'console_scripts', 'carbon-sync')()
File "/usr/lib/python2.7/dist-packages/carbonate/cli.py", line 197, in carbon_sync
args.storage_dir, args.rsync_options)
File "/usr/lib/python2.7/dist-packages/carbonate/sync.py", line 116, in run_batch
merge_elapsed = sync_batch(metrics_to_heal)
File "/usr/lib/python2.7/dist-packages/carbonate/sync.py", line 57, in sync_batch
heal_metric(staging, local)
File "/usr/lib/python2.7/dist-packages/carbonate/sync.py", line 72, in heal_metric
fill_archives(source, dest, time())
File "/usr/lib/python2.7/dist-packages/carbonate/fill.py", line 110, in fill_archives
fill(src, dst, gapstart - step, start)
File "/usr/lib/python2.7/dist-packages/carbonate/fill.py", line 72, in fill
(timeInfo, values) = fetch(src, fromTime, untilTime)
File "/usr/lib/python2.7/dist-packages/whisper.py", line 711, in fetch
return file_fetch(fh, fromTime, untilTime)
File "/usr/lib/python2.7/dist-packages/whisper.py", line 751, in file_fetch
(baseInterval,baseValue) = struct.unpack(pointFormat,packedPoint)
struct.error: unpack requires a string argument of length 12

Someone please help me

Usually that error means that your wsp file is corrupted.
Just shooting in dark here... But maybe related. Could you please replace your /usr/lib/python2.7/dist-packages/whisper.py on source node with this version - https://gist.github.com/deniszh/f874b7ace17687f4fee3508b0a5fdaaf and check is it helps?

Thank you Deniszh, The issue was with corrupted files. which i was not able to find with whisper-info that which files are corrupted. But same able to found out with whisper-dump.