Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

armv7h / badgerds: Unable to mmap RDWR log file: invalid argument #5305

Closed
jcaesar opened this issue Jul 29, 2018 · 8 comments
Closed

armv7h / badgerds: Unable to mmap RDWR log file: invalid argument #5305

jcaesar opened this issue Jul 29, 2018 · 8 comments
Labels
topic/badger Topic badger

Comments

@jcaesar
Copy link

jcaesar commented Jul 29, 2018

Version information:

go-ipfs version: 0.4.17-
Repo version: 7
System version: arm/linux
Golang version: go1.10.3

Type: Bug

Description:

When trying to use the badgerds profile on an odroid xu4 with a btrfs home dir, I get the following output:

initializing IPFS node at /ipfs/debugbadgerds
generating 2048-bit RSA keypair...done
peer identity: QmbuM7F8j8rVrQtFVgTqQEmp1nHzYqXpj1kngY8CaLY672
Error: Unable to mmap RDWR log file: invalid argument

Hopefully relevant strace is attached.

@jcaesar
Copy link
Author

jcaesar commented Jul 29, 2018

gettid()                                = 30444
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
sigaltstack({ss_sp=0x11564000, ss_flags=0, ss_size=32768}, NULL) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
gettid()                                = 30444
futex(0x117ac350, FUTEX_WAKE, 1)        = 1
futex(0x1072610, FUTEX_WAKE, 1)         = 1
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=3000}, NULL) = 0 (Timeout)
futex(0x11370350, FUTEX_WAKE, 1)        = 0
futex(0x1072610, FUTEX_WAKE, 1)         = 1
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x1072610, FUTEX_WAKE, 1)         = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x117ac350, FUTEX_WAKE, 1)        = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69770, tv_nsec=256890426}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69770, tv_nsec=258200641}) = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
sched_yield()                           = 0
futex(0x1071e10, FUTEX_WAIT, 2, NULL)   = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
sched_yield()                           = 0
futex(0x1071e10, FUTEX_WAIT, 2, NULL)   = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
sched_yield()                           = 0
futex(0x1071e10, FUTEX_WAIT, 2, NULL)   = 0
futex(0x1071e10, FUTEX_WAKE, 1)         = 1
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=3000}, NULL) = 0 (Timeout)
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e85d0, FUTEX_WAKE, 1)        = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=925376723}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=926004018}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=926099810}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=927431609}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=927575901}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=927727319}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=927880069}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=928231905}) = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
sched_yield()                           = 0
futex(0x1071e10, FUTEX_WAIT, 2, NULL)   = 0
futex(0x1071e10, FUTEX_WAKE, 1)         = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x11370350, FUTEX_WAKE, 1)        = 1
sched_yield()                           = 0
futex(0x10773d0, FUTEX_WAIT, 2, NULL)   = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=932967096}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933053847}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933238098}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933330348}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933494558}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933577350}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933759976}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=933849559}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934015394}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934098811}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934283228}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934373312}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934538688}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934620105}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934813773}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=934905357}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935069566}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935151650}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935334776}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935425026}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935589402}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935670861}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935853195}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=935944196}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936195864}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936279364}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936479865}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936603824}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936834534}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=936916784}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937103243}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937185952}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937430120}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937512871}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937698622}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937780705}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=937975290}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938086665}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938270791}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938353000}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938553501}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938674793}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938856669}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=938937962}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939134129}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939246255}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939429714}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939510881}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939704799}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=939815883}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940000675}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940118509}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940308927}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940400678}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940571429}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940696179}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940822013}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=940993764}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941075723}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941305391}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941388725}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941557142}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941639559}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941871144}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=941961269}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942133687}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942215687}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942398438}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942489022}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942658190}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942741148}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=942922399}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=943013608}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=943184984}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=943265610}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=943446902}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944238823}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944339115}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944518783}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944600992}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944789784}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=944895035}) = 0
futex(0x10773d0, FUTEX_WAKE, 1)         = 1
lstat64("/ipfs/debugbadgerds/badgerds/LOCK", {st_mode=S_IFREG|0644, st_size=6, ...}) = 0
lstat64("/ipfs/debugbadgerds/badgerds/MANIFEST", {st_mode=S_IFREG|0644, st_size=16, ...}) = 0
close(8)                                = 0
openat(AT_FDCWD, "/ipfs/debugbadgerds/badgerds", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 8
epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3069562688, u64=3069562688}}) = -1 EPERM (Die Operation ist nicht erlaubt)
epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x117a7698) = -1 EPERM (Die Operation ist nicht erlaubt)
fsync(8)                                = 0
close(8)                                = 0
futex(0x113e85d0, FUTEX_WAKE, 1)        = 1
openat(AT_FDCWD, "/ipfs/debugbadgerds/badgerds", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 8
epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3069562688, u64=3069562688}}) = -1 EPERM (Die Operation ist nicht erlaubt)
epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x117a7648) = -1 EPERM (Die Operation ist nicht erlaubt)
getdents64(8, /* 4 entries */, 4096)    = 104
getdents64(8, /* 0 entries */, 4096)    = 0
lstat64("/ipfs/debugbadgerds/badgerds/LOCK", {st_mode=S_IFREG|0644, st_size=6, ...}) = 0
lstat64("/ipfs/debugbadgerds/badgerds/MANIFEST", {st_mode=S_IFREG|0644, st_size=16, ...}) = 0
close(8)                                = 0
openat(AT_FDCWD, "/ipfs/debugbadgerds/badgerds/000000.vlog", O_RDWR|O_CREAT|O_EXCL|O_DSYNC|O_LARGEFILE|O_CLOEXEC, 0666) = 8
epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3069562688, u64=3069562688}}) = -1 EPERM (Die Operation ist nicht erlaubt)
epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x117a765c) = -1 EPERM (Die Operation ist nicht erlaubt)
openat(AT_FDCWD, "/ipfs/debugbadgerds/badgerds", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 9
epoll_ctl(4, EPOLL_CTL_ADD, 9, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3069562688, u64=3069562688}}) = -1 EPERM (Die Operation ist nicht erlaubt)
epoll_ctl(4, EPOLL_CTL_DEL, 9, 0x117a75d8) = -1 EPERM (Die Operation ist nicht erlaubt)
fsync(9)                                = 0
close(9)                                = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1532844887, tv_nsec=761749855}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=951458028}) = 0
futex(0x113445d0, FUTEX_WAKE, 1)        = 1
clock_gettime(CLOCK_REALTIME, {tv_sec=1532844887, tv_nsec=762139398}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=69771, tv_nsec=951863947}) = 0
_llseek(8, 0, [0], SEEK_SET)            = 0
read(8, "", 4096)                       = 0
_llseek(8, 0, [0], SEEK_END)            = 0
futex(0x113445d0, FUTEX_WAKE, 1)        = 1
close(7)                                = 0
unlinkat(AT_FDCWD, "/ipfs/debugbadgerds/badgerds/LOCK", 0) = 0
close(6)                                = 0
unlinkat(AT_FDCWD, "/ipfs/debugbadgerds/repo.lock", 0) = 0
close(5)                                = 0
write(2, "Error: Unable to mmap RDWR log f"..., 54) = 54
futex(0x113445d0, FUTEX_WAKE, 1)        = 1
fsync(2)                                = -1 EINVAL (Das Argument ist ungültig)
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=3000}, NULL) = 0 (Timeout)
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = 0
futex(0x113445d0, FUTEX_WAKE, 1)        = 1
futex(0x1072610, FUTEX_WAKE, 1)         = 0
futex(0x113e80d0, FUTEX_WAIT, 0, NULL)  = ?
+++ exited with 1 +++

Are attachments disabled or something? Oh well.

@whyrusleeping
Copy link
Member

cc @schomatis and maybe @djdv (platforms!)

@schomatis
Copy link
Contributor

schomatis commented Jul 29, 2018

Hey @jcaesar, Badger is trying to mmap twice the (default) size of the log file, i.e., 2 GB, from the specs I'm seeing of the ODROID-XU4 that's all the memory available to the embedded device, could you try reducing the value log file size in the go-ipfs config file?

(BTW, this is a great deployment test, I'd love to see how it progresses :))

@schomatis
Copy link
Contributor

Sorry, I should have clarified that the option is vlogFileSize (the document I pointed to didn't have that information), e.g.,

  "Datastore": {
    "StorageMax": "10GB",
    "StorageGCWatermark": 90,
    "GCPeriod": "1h",
    "Spec": {
      "child": {
        "path": "badgerds",
        "syncWrites": true,
        "vlogFileSize": "100 M",   <---   (In quotes, between 1MB and 2GB.)
        "type": "badgerds"

(Is this information available in any document?)

@Mr0grog
Copy link
Contributor

Mr0grog commented Jul 30, 2018

(Is this information available in any document?)

It should be here, but is not: https://github.com/ipfs/go-ipfs/blob/master/docs/datastores.md#badgerds

@jcaesar
Copy link
Author

jcaesar commented Aug 9, 2018

@schomatis Reducing the vlogFileSize indeed does get rid of the problem. The limit seems to be 1073M.

I'm wondering why this problem doesn't occur on some of my x86_64 VPSs with less RAM…

@schomatis schomatis added the topic/badger Topic badger label Aug 10, 2018
@schomatis
Copy link
Contributor

I'm wondering why this problem doesn't occur on some of my x86_64 VPSs with less RAM…

I really have no idea, but I'm suspecting the 32-bit nature of the Cortex processors might be a problem, 2GB is just over the top of the maximum positive signed integer (which would explain the EINVAL being returned instead of ENOMEM).

@schomatis
Copy link
Contributor

There seems to be an issue in Badger about it: dgraph-io/badger#514.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic/badger Topic badger
Projects
None yet
Development

No branches or pull requests

4 participants