Skip to content

Instantly share code, notes, and snippets.

@krishnasrinivas
Created February 21, 2019 21:15
Show Gist options
  • Save krishnasrinivas/9955745f8ea22b297d6491bffab35875 to your computer and use it in GitHub Desktop.
Save krishnasrinivas/9955745f8ea22b297d6491bffab35875 to your computer and use it in GitHub Desktop.
nkvtest.go:
```
package main
/*
#include <stdio.h>
#include <stdlib.h>
#include "nkv_api.h"
#include "nkv_result.h"
struct minio_nkv_handle {
uint64_t nkv_handle;
uint64_t container_hash;
uint64_t network_path_hash;
};
static int minio_nkv_open(char *config, struct minio_nkv_handle *handle) {
uint64_t instance_uuid = 0;
nkv_result result;
result = nkv_open(config, "minio", "msl-ssg-sk01", 1023, &instance_uuid, &handle->nkv_handle);
return result;
}
static int minio_nkv_open_path(struct minio_nkv_handle *handle, char *ipaddr) {
uint32_t index = 0;
uint32_t cnt_count = NKV_MAX_ENTRIES_PER_CALL;
nkv_container_info *cntlist = malloc(sizeof(nkv_container_info)*NKV_MAX_ENTRIES_PER_CALL);
memset(cntlist, 0, sizeof(nkv_container_info) * NKV_MAX_ENTRIES_PER_CALL);
for (int i = 0; i < NKV_MAX_ENTRIES_PER_CALL; i++) {
cntlist[i].num_container_transport = NKV_MAX_CONT_TRANSPORT;
cntlist[i].transport_list = malloc(sizeof(nkv_container_transport)*NKV_MAX_CONT_TRANSPORT);
memset(cntlist[i].transport_list, 0, sizeof(nkv_container_transport)*NKV_MAX_CONT_TRANSPORT);
}
int result = nkv_physical_container_list (handle->nkv_handle, index, cntlist, &cnt_count);
if (result != 0) {
printf("NKV getting physical container list failed !!, error = %d\n", result);
exit(1);
}
printf("Got container list, count = %u\n", cnt_count);
nkv_io_context io_ctx[16];
memset(io_ctx, 0, sizeof(nkv_io_context) * 16);
uint32_t io_ctx_cnt = 0;
for (uint32_t i = 0; i < cnt_count; i++) {
printf("Container Information :: hash = %ul, id = %ul, uuid = %s, name = %s, target node = %s, status = %u, space available pcnt = %u\n",
cntlist[i].container_hash, cntlist[i].container_id, cntlist[i].container_uuid, cntlist[i].container_name, cntlist[i].hosting_target_name,
cntlist[i].container_status, cntlist[i].container_space_available_percentage);
printf("\n");
io_ctx[io_ctx_cnt].container_hash = cntlist[i].container_hash;
printf("Number of Container transport = %d\n", cntlist[i].num_container_transport);
for (int p = 0; p < cntlist[i].num_container_transport; p++) {
printf("Transport information :: hash = %u, id = %d, address = %s, port = %d, family = %d, speed = %d, status = %d, numa_node = %d\n",
cntlist[i].transport_list[p].network_path_hash, cntlist[i].transport_list[p].network_path_id, cntlist[i].transport_list[p].ip_addr,
cntlist[i].transport_list[p].port, cntlist[i].transport_list[p].addr_family, cntlist[i].transport_list[p].speed,
cntlist[i].transport_list[p].status, cntlist[i].transport_list[p].numa_node);
io_ctx[io_ctx_cnt].is_pass_through = 1;
io_ctx[io_ctx_cnt].container_hash = cntlist[i].container_hash;
io_ctx[io_ctx_cnt].network_path_hash = cntlist[i].transport_list[p].network_path_hash;
if(!strcmp(cntlist[i].transport_list[p].ip_addr, ipaddr)) {
handle->container_hash = cntlist[i].container_hash;
handle->network_path_hash = cntlist[i].transport_list[p].network_path_hash;
return 0;
}
io_ctx_cnt++;
}
}
return 1;
}
static int minio_nkv_put(struct minio_nkv_handle *handle, void *key, int keyLen, void *value, int valueLen) {
nkv_result result;
nkv_io_context ctx;
ctx.is_pass_through = 1;
ctx.container_hash = handle->container_hash;
ctx.network_path_hash = handle->network_path_hash;
ctx.ks_id = 0;
const nkv_key nkvkey = {key, keyLen};
nkv_store_option option = {0};
nkv_value nkvvalue = {value, valueLen, 0};
result = nkv_store_kvp(handle->nkv_handle, &ctx, &nkvkey, &option, &nkvvalue);
return result;
}
static int minio_nkv_get(struct minio_nkv_handle *handle, void *key, int keyLen, void *value, int valueLen, int *actual_length) {
nkv_result result;
nkv_io_context ctx;
ctx.is_pass_through = 1;
ctx.container_hash = handle->container_hash;
ctx.network_path_hash = handle->network_path_hash;
ctx.ks_id = 0;
const nkv_key nkvkey = {key, keyLen};
nkv_retrieve_option option = {0};
nkv_value nkvvalue = {value, valueLen, 0};
result = nkv_retrieve_kvp(handle->nkv_handle, &ctx, &nkvkey, &option, &nkvvalue);
*actual_length = nkvvalue.actual_length;
return result;
}
*/
import "C"
import (
"bytes"
"fmt"
"log"
"os"
"unsafe"
"time"
)
func main() {
configPath := os.Getenv("MINIO_NKV_CONFIG")
if configPath == "" {
fmt.Println("MINIO_NKV_CONFIG not set")
os.Exit(1)
}
var ips []string
for _, ip := range os.Args[1:] {
ips = append(ips, ip)
}
if len(ips) == 0 {
fmt.Println("IPs not provided")
os.Exit(1)
}
var handle C.struct_minio_nkv_handle
status := C.minio_nkv_open(C.CString(configPath), &handle)
if status != 0 {
log.Fatal("C.minio_nkv_open failed: ", status)
}
handles := make([]C.struct_minio_nkv_handle, len(ips))
for i := range handles {
handles[i] = handle
status := C.minio_nkv_open_path(&handles[i], C.CString(ips[i]))
if status != 0 {
log.Fatal("C.minio_nkv_open failed: ", status, ips[i])
}
}
key1 := []byte(".minio.sys/format.json.tmp")
key2 := []byte(".minio.sys/format.json")
value := bytes.Repeat([]byte("a"), 335)
valueGet := make([]byte, 2 * 1024 * 1024)
var actualLength C.int
status = C.minio_nkv_put(&handles[0], unsafe.Pointer(&key1[0]), C.int(len(key1)), unsafe.Pointer(&value[0]), C.int(len(value)))
if status != 0 {
log.Fatal("C.minio_nkv_put failed", status, 0)
}
status = C.minio_nkv_get(&handles[0], unsafe.Pointer(&key1[0]), C.int(len(key1)), unsafe.Pointer(&valueGet[0]), C.int(len(valueGet)), &actualLength)
if status != 0 {
log.Fatal("C.minio_nkv_get failed", status, 0)
}
status = C.minio_nkv_put(&handles[0], unsafe.Pointer(&key2[0]), C.int(len(key2)), unsafe.Pointer(&value[0]), C.int(len(value)))
if status != 0 {
log.Fatal("C.minio_nkv_put failed", status, 0)
}
status = C.minio_nkv_put(&handles[1], unsafe.Pointer(&key1[0]), C.int(len(key1)), unsafe.Pointer(&value[0]), C.int(len(value)))
if status != 0 {
log.Fatal("C.minio_nkv_put failed", status, 0)
}
status = C.minio_nkv_put(&handles[2], unsafe.Pointer(&key1[0]), C.int(len(key1)), unsafe.Pointer(&value[0]), C.int(len(value)))
if status != 0 {
log.Fatal("C.minio_nkv_put failed", status, 0)
}
status = C.minio_nkv_put(&handles[3], unsafe.Pointer(&key1[0]), C.int(len(key1)), unsafe.Pointer(&value[0]), C.int(len(value)))
if status != 0 {
log.Fatal("C.minio_nkv_put failed", status, 0)
}
fmt.Println("done")
time.Sleep(10*time.Second)
}
```
```
root@minio-c2:~/nkv# echo $MINIO_NKV_CONFIG
/home/minio/nkv/nkv_config.json
root@minio-c2:~/nkv# cat /home/minio/nkv/nkv_config.json
{
"fm_address": "10.1.20.91",
"contact_fm": 0,
"nkv_transport" : 0,
"min_container_required" : 1,
"min_container_path_required" : 1,
"nkv_container_path_qd" : 64,
"nkv_mounts": [
{
"mount_point": "/dev/nvme0n1",
"remote_nqn_name": "nqn-02",
"remote_target_node_name": "msl-ssg-sk01",
"nqn_transport_address": "101.100.10.31",
"nqn_transport_port": 1023,
"numa_node_attached" : 0
},
{
"mount_point": "/dev/nvme1n1",
"remote_nqn_name": "nqn-02",
"remote_target_node_name": "msl-ssg-sk01",
"nqn_transport_address": "102.100.10.31",
"nqn_transport_port": 1023,
"numa_node_attached" : 0
},
{
"mount_point": "/dev/nvme2n1",
"remote_nqn_name": "nqn-02",
"remote_target_node_name": "msl-ssg-sk01",
"nqn_transport_address": "103.100.10.31",
"nqn_transport_port": 1023,
"numa_node_attached" : 0
},
{
"mount_point": "/dev/nvme4n1",
"remote_nqn_name": "nqn-02",
"remote_target_node_name": "msl-ssg-sk01",
"nqn_transport_address": "104.100.10.31",
"nqn_transport_port": 1023,
"numa_node_attached" : 0
}
],
"subsystem_maps": [
{
"target_server_name": "msl-ssg-sk01",
"subsystem_nqn_id": "dce20d46",
"subsystem_nqn": "nqn-02",
"subsystem_nqn_nsid": 1,
"subsystem_transport": [
{
"subsystem_type": 1,
"subsystem_address": "101.100.10.31",
"subsystem_port": 1023,
"subsystem_addr_fam": 2,
"subsystem_interface_speed": 3,
"subsystem_interface_numa_aligned": false,
"subsystem_interface_status":1
},
{
"subsystem_type": 1,
"subsystem_address": "102.100.10.31",
"subsystem_port": 1023,
"subsystem_addr_fam": 2,
"subsystem_interface_speed": 3,
"subsystem_interface_numa_aligned": false,
"subsystem_interface_status":1
},
{
"subsystem_type": 1,
"subsystem_address": "103.100.10.31",
"subsystem_port": 1023,
"subsystem_addr_fam": 2,
"subsystem_interface_speed": 3,
"subsystem_interface_numa_aligned": false,
"subsystem_interface_status":1
},
{
"subsystem_type": 1,
"subsystem_address": "104.100.10.31",
"subsystem_port": 1023,
"subsystem_addr_fam": 2,
"subsystem_interface_speed": 3,
"subsystem_interface_numa_aligned": false,
"subsystem_interface_status":1
}
],
"subsystem_status": 0,
"subsystem_space_avail_percent": 87
}
]
}
root@minio-c2:~/nkv#
root@minio-c2:~/nkv# ./nkvtest 101.100.10.31 102.100.10.31 103.100.10.31 104.100.10.31
2019-02-21 21:08:51,747 [139901674862400] [INFO] NKV config file = /home/minio/nkv/nkv_config.json
2019-02-21 21:08:51,747 [139901674862400] [INFO] Generated NKV handle = 4091013546 , NKV instance uuid = 2775618203 for app uuid = minio
2019-02-21 21:08:51,747 [139901674862400] [INFO] contact_fm = 0, nkv_transport = 0, min_container_required = 1, min_container_path_required = 1, nkv_container_path_qd = 64
2019-02-21 21:08:51,747 [139901674862400] [INFO] Adding path, hash = 3303807887, address = 101.100.10.31, port = 1023, fam = 2, speed = 3, status = 1, numa_aligned = 0
2019-02-21 21:08:51,748 [139901674862400] [INFO] Network path added, ip hash = 3303807887, target_container_name = nqn-02, total path so far = 1
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding path, hash = 1441750628, address = 102.100.10.31, port = 1023, fam = 2, speed = 3, status = 1, numa_aligned = 0
2019-02-21 21:08:51,748 [139901674862400] [INFO] Network path added, ip hash = 1441750628, target_container_name = nqn-02, total path so far = 2
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding path, hash = 3559271658, address = 103.100.10.31, port = 1023, fam = 2, speed = 3, status = 1, numa_aligned = 0
2019-02-21 21:08:51,748 [139901674862400] [INFO] Network path added, ip hash = 3559271658, target_container_name = nqn-02, total path so far = 3
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding path, hash = 173163378, address = 104.100.10.31, port = 1023, fam = 2, speed = 3, status = 1, numa_aligned = 0
2019-02-21 21:08:51,748 [139901674862400] [INFO] Network path added, ip hash = 173163378, target_container_name = nqn-02, total path so far = 4
2019-02-21 21:08:51,748 [139901674862400] [INFO] Container added, hash = 993003492, id = 0, uuid = dce20d46, Node name = msl-ssg-sk01 , NQN name = nqn-02 , container count = 1
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding device path, mount point = /dev/nvme0n1, address = 101.100.10.31, port = 1023, nqn name = nqn-02, target node = msl-ssg-sk01
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding device path, mount point = /dev/nvme1n1, address = 102.100.10.31, port = 1023, nqn name = nqn-02, target node = msl-ssg-sk01
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding device path, mount point = /dev/nvme2n1, address = 103.100.10.31, port = 1023, nqn name = nqn-02, target node = msl-ssg-sk01
2019-02-21 21:08:51,748 [139901674862400] [INFO] Adding device path, mount point = /dev/nvme4n1, address = 104.100.10.31, port = 1023, nqn name = nqn-02, target node = msl-ssg-sk01
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Inspecting target id = 0, target node = msl-ssg-sk01, container name = nqn-02
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Inspecting path with address = 104.100.10.31 , dev_path = /dev/nvme4n1, port = 1023, status = 1
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Inspecting path with address = 103.100.10.31 , dev_path = /dev/nvme2n1, port = 1023, status = 1
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Inspecting path with address = 102.100.10.31 , dev_path = /dev/nvme1n1, port = 1023, status = 1
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Inspecting path with address = 101.100.10.31 , dev_path = /dev/nvme0n1, port = 1023, status = 1
2019-02-21 21:08:51,748 [139901674862400] [INFO] **NKV transport is NVMe Over TCP via kernel**
2019-02-21 21:08:51,748 [139901674862400] [INFO] Setting environment for open mpdk is successful for app = minio
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Opening path for target node = msl-ssg-sk01, container name = nqn-02
2019-02-21 21:08:51,748 [139901674862400] [DEBUG] Opening path with address = 104.100.10.31 , dev_path = /dev/nvme4n1, port = 1023, status = 1
2019-02-21 21:08:51,757 [139901674862400] [INFO] ** Path open successful for path = /dev/nvme4n1 **
2019-02-21 21:08:51,757 [139901674862400] [INFO] ** Path container creation successful for path = /dev/nvme4n1, container name = nkv_minio **
2019-02-21 21:08:51,757 [139901674862400] [INFO] ** Path open container successful for path = /dev/nvme4n1, container name = nkv_minio **
2019-02-21 21:08:51,757 [139901674862400] [DEBUG] Opening path with address = 103.100.10.31 , dev_path = /dev/nvme2n1, port = 1023, status = 1
2019-02-21 21:08:51,764 [139901674862400] [INFO] ** Path open successful for path = /dev/nvme2n1 **
2019-02-21 21:08:51,764 [139901674862400] [INFO] ** Path container creation successful for path = /dev/nvme2n1, container name = nkv_minio **
2019-02-21 21:08:51,764 [139901674862400] [INFO] ** Path open container successful for path = /dev/nvme2n1, container name = nkv_minio **
2019-02-21 21:08:51,764 [139901674862400] [DEBUG] Opening path with address = 102.100.10.31 , dev_path = /dev/nvme1n1, port = 1023, status = 1
2019-02-21 21:08:51,772 [139901674862400] [INFO] ** Path open successful for path = /dev/nvme1n1 **
2019-02-21 21:08:51,772 [139901674862400] [INFO] ** Path container creation successful for path = /dev/nvme1n1, container name = nkv_minio **
2019-02-21 21:08:51,772 [139901674862400] [INFO] ** Path open container successful for path = /dev/nvme1n1, container name = nkv_minio **
2019-02-21 21:08:51,772 [139901674862400] [DEBUG] Opening path with address = 101.100.10.31 , dev_path = /dev/nvme0n1, port = 1023, status = 1
2019-02-21 21:08:51,779 [139901674862400] [INFO] ** Path open successful for path = /dev/nvme0n1 **
2019-02-21 21:08:51,779 [139901674862400] [INFO] ** Path container creation successful for path = /dev/nvme0n1, container name = nkv_minio **
2019-02-21 21:08:51,779 [139901674862400] [INFO] ** Path open container successful for path = /dev/nvme0n1, container name = nkv_minio **
2019-02-21 21:08:51,779 [139901674862400] [INFO] NKV open is successful for app = minio
2019-02-21 21:08:51,779 [139901674862400] [INFO] Number of containers populated = 1
Got container list, count = 1
Container Information :: hash = 993003492l, id = 0l, uuid = dce20d46, name = nqn-02, target node = msl-ssg-sk01, status = 0, space available pcnt = 87
Number of Container transport = 4
Transport information :: hash = 173163378, id = 3, address = 104.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 3559271658, id = 2, address = 103.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 1441750628, id = 1, address = 102.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 3303807887, id = 0, address = 101.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
2019-02-21 21:08:51,779 [139901674862400] [INFO] Number of containers populated = 1
Got container list, count = 1
Container Information :: hash = 993003492l, id = 0l, uuid = dce20d46, name = nqn-02, target node = msl-ssg-sk01, status = 0, space available pcnt = 87
Number of Container transport = 4
Transport information :: hash = 173163378, id = 3, address = 104.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 3559271658, id = 2, address = 103.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 1441750628, id = 1, address = 102.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
2019-02-21 21:08:51,779 [139901674862400] [INFO] Number of containers populated = 1
Got container list, count = 1
Container Information :: hash = 993003492l, id = 0l, uuid = dce20d46, name = nqn-02, target node = msl-ssg-sk01, status = 0, space available pcnt = 87
Number of Container transport = 4
Transport information :: hash = 173163378, id = 3, address = 104.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
Transport information :: hash = 3559271658, id = 2, address = 103.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
2019-02-21 21:08:51,779 [139901674862400] [INFO] Number of containers populated = 1
Got container list, count = 1
Container Information :: hash = 993003492l, id = 0l, uuid = dce20d46, name = nqn-02, target node = msl-ssg-sk01, status = 0, space available pcnt = 87
Number of Container transport = 4
Transport information :: hash = 173163378, id = 3, address = 104.100.10.31, port = 1023, family = 2, speed = 3, status = 1, numa_node = 0
2019-02-21 21:08:51,779 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme0n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 101.100.10.31, path port = 1023
2019-02-21 21:08:51,779 [139901674862400] [INFO] Store option:: compression = 0, encryption = 0, store crc = 0, no overwrite = 0, atomic = 0, update only = 0, append = 0
2019-02-21 21:08:51,780 [139901674862400] [INFO] NKV store operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json.tmp
2019-02-21 21:08:51,780 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme0n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 101.100.10.31, path port = 1023
2019-02-21 21:08:51,780 [139901674862400] [INFO] Retrieve option:: decompression = 0, decryption = 0, compare crc = 0, delete = 0
2019-02-21 21:08:51,782 [139901674862400] [INFO] NKV retrieve operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json.tmp
2019-02-21 21:08:51,782 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme0n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 101.100.10.31, path port = 1023
2019-02-21 21:08:51,782 [139901674862400] [INFO] Store option:: compression = 0, encryption = 0, store crc = 0, no overwrite = 0, atomic = 0, update only = 0, append = 0
2019-02-21 21:08:51,782 [139901674862400] [INFO] NKV store operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json
2019-02-21 21:08:51,782 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme1n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 102.100.10.31, path port = 1023
2019-02-21 21:08:51,782 [139901674862400] [INFO] Store option:: compression = 0, encryption = 0, store crc = 0, no overwrite = 0, atomic = 0, update only = 0, append = 0
2019-02-21 21:08:51,783 [139901674862400] [INFO] NKV store operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json.tmp
2019-02-21 21:08:51,783 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme2n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 103.100.10.31, path port = 1023
2019-02-21 21:08:51,783 [139901674862400] [INFO] Store option:: compression = 0, encryption = 0, store crc = 0, no overwrite = 0, atomic = 0, update only = 0, append = 0
2019-02-21 21:08:51,783 [139901674862400] [INFO] NKV store operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json.tmp
2019-02-21 21:08:51,783 [139901674862400] [INFO] Sending IO to dev mount = /dev/nvme4n1, container name = nqn-02, target node = msl-ssg-sk01, path ip = 104.100.10.31, path port = 1023
2019-02-21 21:08:51,783 [139901674862400] [INFO] Store option:: compression = 0, encryption = 0, store crc = 0, no overwrite = 0, atomic = 0, update only = 0, append = 0
2019-02-21 21:08:51,783 [139901674862400] [INFO] NKV store operation is successful for nkv_handle = 4091013546, key = .minio.sys/format.json.tmp
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x44b466]
goroutine 1 [running]:
runtime.throw(0x4c6ea9, 0x5)
/snap/go/3129/src/runtime/panic.go:608 +0x72 fp=0xc000108890 sp=0xc000108860 pc=0x429132
runtime.sigpanic()
/snap/go/3129/src/runtime/signal_unix.go:397 +0x275 fp=0xc0001088e0 sp=0xc000108890 pc=0x43c0c5
runtime.(*_type).string(0x6161616161616161, 0x4974c7, 0x7)
/snap/go/3129/src/runtime/type.go:46 +0x26 fp=0xc000108908 sp=0xc0001088e0 pc=0x44b466
runtime.(*TypeAssertionError).Error(0xc00014c180, 0x4ae740, 0xc00014c180)
/snap/go/3129/src/runtime/error.go:39 +0xa1 fp=0xc000108a80 sp=0xc000108908 pc=0x407f31
runtime.preprintpanics(0xc000108b50)
/snap/go/3129/src/runtime/panic.go:421 +0xb7 fp=0xc000108af8 sp=0xc000108a80 pc=0x428867
panic(0x4ae740, 0xc00014c180)
/snap/go/3129/src/runtime/panic.go:554 +0x2b9 fp=0xc000108b88 sp=0xc000108af8 pc=0x428d69
runtime.panicdottypeE(0x6161616161616161, 0x4bfde0, 0x4ac7a0)
/snap/go/3129/src/runtime/iface.go:248 +0xd6 fp=0xc000108ba8 sp=0xc000108b88 pc=0x40a306
fmt.newPrinter(0x494f9d)
/snap/go/3129/src/fmt/print.go:133 +0xa7 fp=0xc000108bd0 sp=0xc000108ba8 pc=0x489d47
fmt.Fprintln(0x4dbda0, 0xc000160008, 0xc000108de8, 0x1, 0x1, 0xc00016a000, 0x14f, 0x14f)
/snap/go/3129/src/fmt/print.go:253 +0x26 fp=0xc000108c38 sp=0xc000108bd0 pc=0x48a136
fmt.Println(0xc000108de8, 0x1, 0x1, 0xc00016a000, 0x14f, 0x14f)
/snap/go/3129/src/fmt/print.go:264 +0x57 fp=0xc000108c88 sp=0xc000108c38 pc=0x48a267
main.main()
/home/minio/nkv/nkvtest.go:174 +0x894 fp=0xc000108f98 sp=0xc000108c88 pc=0x492ca4
runtime.main()
/snap/go/3129/src/runtime/proc.go:201 +0x207 fp=0xc000108fe0 sp=0xc000108f98 pc=0x42aaa7
runtime.goexit()
/snap/go/3129/src/runtime/asm_amd64.s:1333 +0x1 fp=0xc000108fe8 sp=0xc000108fe0 pc=0x453591
root@minio-c2:~/nkv#
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment