-
Notifications
You must be signed in to change notification settings - Fork 40
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
Changes for ARM #26
Comments
Hi.
I have no any error on arm build. |
Well, I understand my code not good. Main problem is using AddUint64 at ARM arch. I will make fork for myself with using AddUint32 in code. I not good in Golang, so I can't now create code with 64 and 32 support. |
@yanchick can you check that branch https://github.com/valinurovam/garagemq/tree/fix-arm-uin64-issues? |
Hi. Thanks for changing. Yes this commit is help. But in runtime I have a crash. If I correctly understand issue golang/go#23345 the main problem is uint64 in code. Especially AddUint64. I make changes for myself, i replace all uint64 variables to uint32. I don't understand all effects of these changes. But these changes help me. I use garagemq for testing amqp in my apps, not for prods. And i not sure for these modifications in main repository. |
Can you give any stacktrace of error and what model is your ARM? arm7? |
Hi. I build your code and haven't crash at tests. So, I think issue is solved. But I will take more tests at week I use ARMv5. |
Here's a full build log for 32bit arm, same problem occurs also on i386 so seems to be a generic 32bit alignment issue: Here's the full i386 build log: |
Did some experiments.... The problem in the above (armhf + i386) build log can be "fixed" by moving the connSeq member of the Server struct to be the first member (apparently beginning of struct is guaranteed to be aligned in memory). The next problem that occurs can be seen in this (armel) build log (which I reproduced on i386 locally): This problem might in fact be self-inflicted. Badger doesn't build on 32bit archs either so I'm using a patched version which is 2.0.1 + fixes that makes badger pass it's own testsuite. The patches for badger can be found here: https://salsa.debian.org/go-team/packages/badger/tree/master/debian/patches The Mmap failure originally was also hit by badgers test-suite and was "fixed" by lowering the default size of the value log at : https://salsa.debian.org/go-team/packages/badger/blob/master/debian/patches/fix-32bit.patch#L9 Apparently allocations made by garagemq before the mmap makes the default value no longer be mmap:able (because it exhausts the memory space of the process). As a test we could of course just lower the setting e.g. by doing
We can ofcourse now continue tweaking ValueLogFileSize to a lower value in hope that we can squeeze things in, but something feels really fundamentally wrong when we exhaust the entire memory space on 32bit systems.... |
Hi. I try build gragemq for ARM(QNAP NAS) and get fail at work. I try made some changes for running code at ARM. All changes here. What you recommend improve in commit for pull request?
The text was updated successfully, but these errors were encountered: