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

docker - runtime/cgo: pthread_create failed: Resource temporarily unavailable #15

Closed
jcmartins opened this issue Jan 22, 2016 · 6 comments

Comments

@jcmartins
Copy link

jcmartins commented Jan 22, 2016

go version
go version go1.4.3 linux/amd64

loader --postings /dgraph/p --rdfgzips /data/rdf-films.gz, /data/names.gz --stw_ram_mb 7000
loader --postings /dgraph/p --rdfgzips /data/rdf-films.gz, /data/names.gz --stw_ram_mb 7000
INFO[0000] Empty size: [16] EmptyPosting size: [24] package=posting
INFO[0000] Set max procs to num cpus num_cpu=4 package=loader_main prev_maxprocs=1
INFO[0000] Handling... package=loader_main path=/data/rdf-films.gz

3 merged=2732887 package=posting pending=13836
INFO[0451] List Merge counters added=2746995 clean=3865 dirtysize=0 mapsize=1625 merged=2741105 package=posting pending=5890
INFO[0452] Merged lists. Calling GC. package=posting
INFO[0456] Trying to free OS memory package=posting
INFO[0459] Memory Usage after calling GC. allocated_MB=1486 package=posting
INFO[0460] Counters ignored=0 len_cnq=9971 package=loader parsed=1065104 pending=12971 processed=1052133 read=1075108
runtime/cgo: pthread_create failed: Resource temporarily unavailable
SIGABRT: abort
PC=0x7efdfe2a8107

goroutine 0 [idle]:

goroutine 1 [chan receive, 7 minutes]:
github.com/dgraph-io/dgraph/loader.HandleRdfReader(0x7efdfef4b0f8, 0xc20805a000, 0x1, 0x7efdfef4b0f8, 0x0, 0x0)
/go/src/github.com/dgraph-io/dgraph/loader/loader.go:179 +0x2d3
main.main()
/go/src/github.com/dgraph-io/dgraph/server/loader/main.go:88 +0xd2c

goroutine 17 [syscall, 7 minutes, locked to thread]:
runtime.goexit()
/usr/src/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 1812945 [chan receive]:
github.com/dgraph-io/dgraph/posting.(*counters).periodicLog(0xc2a68c0bc0)
/go/src/github.com/dgraph-io/dgraph/posting/lists.go:45 +0x68
created by github.com/dgraph-io/dgraph/posting.MergeLists
/go/src/github.com/dgraph-io/dgraph/posting/lists.go:245 +0x1ef

rax 0x0
rbx 0x7f7607fa8708
rcx 0x7f7607c39107
rdx 0x6
rdi 0x1f6
rsi 0x1f7
rbp 0x642d12
rsp 0x7f7606986798
r8 0xa
r9 0x7f7606987700
r10 0x8
r11 0x206
r12 0x7f75fc033990
r13 0x7f7608919060
r14 0x0
r15 0x7f7606987700
rip 0x7f7607c39107
rflags 0x206
cs 0x33
fs 0x0
gs 0x0

@jcmartins
Copy link
Author

In my local machine (not docker) run go version 1.5.3 it`s run ok!

@manishrjain
Copy link
Contributor

This is a cgo bug, which was resolved in 1.4.3, but then came back in 1.5.1. When you saw it in 1.4.3, did you run the loader in a docker instance, or directly on local machine?

If 1.5.3 runs fine, we might switch to it.

@jcmartins
Copy link
Author

The bug only occurs in docker with go version 1.4.1

In my local notebook with archlinux and running go v1.5.3 this bug does not occurred.

@manishrjain
Copy link
Contributor

This is a known issue with Go. I've created #22 to switch to Go 1.5.3 in v0.2, which we're expecting to launch by end February.

@jcmartins
Copy link
Author

Why not wait to go 1.6 ?

@manishrjain
Copy link
Contributor

Go 1.6 hasn't yet released. Following from the bugs that I encountered in Go 1.5.1, I intend to keep DGraph on a version which has been released for at least 3 months, so it has chance to get any bugs fixed. Go 1.5.3 has that going for it.

danielmai pushed a commit that referenced this issue May 1, 2020
Dynamically set dgraph endpoint
shivaji-dgraph pushed a commit that referenced this issue Mar 12, 2024
Description: There was a broken Type assertion and value assignment in
worker/mutation.go that is strongly suspected to be the cause of CICD
errors.

An oddity here: the change that I made looks totally unnecessary! It
looks like the code should be either:
edge.Value = b.Value.([]byte)
or
edge.Value = *(b.Value.(*[]byte))

Yet, for some reason, it seems that both results are coming out!
When I copy the code snippets to a go-playground instance, it only
allows the second option, but it seems that most of the tests break on
the second option, and some break on the first option. I do not have an
explanation for the behavior, but I know that the code works.

Any reviewers, I would appreciate your insights!

Closes: DGR-65
harshil-goel pushed a commit that referenced this issue Mar 12, 2024
Description: There was a broken Type assertion and value assignment in
worker/mutation.go that is strongly suspected to be the cause of CICD
errors.

An oddity here: the change that I made looks totally unnecessary! It
looks like the code should be either:
edge.Value = b.Value.([]byte)
or
edge.Value = *(b.Value.(*[]byte))

Yet, for some reason, it seems that both results are coming out!
When I copy the code snippets to a go-playground instance, it only
allows the second option, but it seems that most of the tests break on
the second option, and some break on the first option. I do not have an
explanation for the behavior, but I know that the code works.

Any reviewers, I would appreciate your insights!

Closes: DGR-65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants