Asrestore error for LDT data

I am testing the backup/restore workflow using the aerospike 3.6.2 vagrant box on OS X and have hit upon a problem when restoring LDT data.

Backup:

➜  b1  asbackup --host 127.0.0.1 --namespace test --directory .

Restore:

➜  b1  asrestore --host 127.0.0.1 --directory .
2015-10-22 09:36:53 UTC [INF] [89397] Starting restore to 127.0.0.1:3000 (bins: [all], sets: [all]) from .
2015-10-22 09:36:53 UTC [INF] [89397] Processing 1 node(s)
2015-10-22 09:36:53 UTC [INF] [89397] Found 1 backup file(s) in .
2015-10-22 09:36:53 UTC [INF] [89397] Opened backup file ./BB9617C21270008_00000.asb
2015-10-22 09:36:53 UTC [INF] [89397] Restoring 0 UDF file(s)
2015-10-22 09:36:53 UTC [INF] [89397] Restoring 0 secondary index(es)
2015-10-22 09:36:53 UTC [INF] [89397] Restoring records
2015-10-22 09:36:53 UTC [INF] [89418] Restoring ./BB9617C21270008_00000.asb
2015-10-22 09:36:53 UTC [INF] [89418] Opened backup file ./BB9617C21270008_00000.asb
2015-10-22 09:36:53 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:54 UTC [INF] [89417] 0 UDF file(s), 0 secondary index(es), 0 record(s) (0 KiB/s, 0 rec/s, 0 B/rec, backed off: 0)
2015-10-22 09:36:54 UTC [INF] [89417] Expired 0 : skipped 0 : inserted 0 : failed 0 (existed 0, fresher 0)
2015-10-22 09:36:54 UTC [INF] [89417] 7% complete, ~13s remaining
2015-10-22 09:36:54 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:55 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:56 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:57 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:58 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:36:59 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:37:00 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:37:01 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:37:02 UTC [ERR] [89418] Error while writing LDT batch - code 100: /opt/aerospike/sys/udf/lua/ldt/lib_llist.lua:889: 1433:LDT-Key Field Not Found at src/main/aerospike/as_command.c:822
2015-10-22 09:37:03 UTC [ERR] [89418] Too many errors, giving up
2015-10-22 09:37:03 UTC [ERR] [89418] Error while indicating end of LDT list
2015-10-22 09:37:03 UTC [ERR] [89418] Error while parsing encoded LDT bin value
2015-10-22 09:37:03 UTC [ERR] [89418] Error while parsing record
2015-10-22 09:37:03 UTC [ERR] [89418] Error while restoring backup file ./BB9617C21270008_00000.asb (line 10)
2015-10-22 09:37:04 UTC [INF] [89417] 0 UDF file(s), 0 secondary index(es), 0 record(s) (0 KiB/s, 0 rec/s, 0 B/rec, backed off: 0)
2015-10-22 09:37:04 UTC [INF] [89417] Expired 0 : skipped 0 : inserted 0 : failed 0 (existed 0, fresher 0)
2015-10-22 09:37:04 UTC [INF] [89417] 25% complete, ~4s remaining

The backup file:

Version 3.1
# namespace test
# first-file
+ n test
+ d AlAx1k5nj4o8obirHkIzygN7gRs=
+ s content
+ g 42
+ t 0
+ b 1
- U ldtdata 468 loKkA3ZhbL4DLTQdMjlDSEd5QXpBZDIycWMdMTQ0NTQzNjgyMh2kA2tlea8DMjlDSEd5QXpBZDIycWOCpAN2YWy+Ay0xHTI5Q0hHeUJ4NmoyMnpjHTE0NDU0MzY4MjIdpANrZXmvAzI5Q0hHeUJ4NmoyMnpjgqQDdmFsvgMtNh0yOUNIR3l0cnFyMjJ4Yx0xNDQ1NDM2ODIyHaQDa2V5rwMyOUNIR3l0cnFyMjJ4Y4KkA3ZhbL4DLTMdMjlDSEd5dHp6dDIyMmMdMTQ0NTQzNjgyMh2kA2tlea8DMjlDSEd5dHp6dDIyMmOCpAN2YWy+Ay01HTI5Q0hHeXc1enoyMndjHTE0NDU0MzY4MjIdpANrZXmvAzI5Q0hHeXc1enoyMndjgqQDdmFsvgMtMh0yOUNIR3l3SDVDMjJHYx0xNDQ1NDM2ODIyHaQDa2V5rwMyOUNIR3l3SDVDMjJHYw==

If you base64 decode the data and view it in a hex editor you will notice that there is a “key” field, and also that I am using some non-printable ASCII characters to delimit data within the “val” field - namely 1D, 1E, 1F which are reserved separator types in ASCII.

I’m guessing it’s these non-printable characters that are causing the problem? They do however work ok when restoring as part of a Map type, or any other type as far as I am aware.

@memunix,

A JIRA has been filed to follow up on this; it’s AER-4543, just for your reference. Please stay tuned for updates on our progress.

1 Like