I know Windows 8 is not officially supported. However, has anyone else successfully run Couchebase 1.8 on Windows 8 RTM? I’ve had Couchbase running on previous versions of Windows 8, and on Windows 7. Our platform specifically uses memcached. We do our development on Windows 7, where everything runs fine. Here’s what I’m seeing in the log:
Service memcached exited on node ‘ns_1@127.0.0.1’ in 0.45s
Port server memcached on node ‘ns_1@127.0.0.1’ exited with status 255. Restarting. Messages: Check failed: false && "Unable to patch because there is an unhandled branch " “instruction in the initial preamble bytes.”: false && "Unable to patch because there is an unhandled branch " “instruction in the initial preamble bytes.”
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.
I’m having the same issue, on a domain-joined Windows Server 2012 RC (x64) (fully patched) with the firewall turned off for now (I’m in an isolated virtual environment :)), using Couchbase Community 1.8.1 Build 937.
Would really appreciate any suggestions - I’ve been looking through the manual on troubleshooting with little success.
Note that Couchbase 1.8.0 Community Build 55 seems to work fine. Couchbase 2.0.0 Preview 4 Community Build 724 works as well. (I’ll work with 2.0.0 for now, and hope that a working + stable version is available by the time I have to go to production.)
The issue is being tracked with this bug in JIRA:http://www.couchbase.com/issues/browse/MB-6395. The problem is with the memcached process. At the moment there isn’t a workaround for this issue.
I got stuck on this issue with the beta release of 2.0, after having no issue with the dev preview. So I dug a bit, and discovered that the problem wasn’t exactly with the memcached code, but with the tcmalloc dll it was using. Since there really isn’t any need for something like tcmalloc on windows where the low fragmentation heap already performs so well, I made a little shim library to take the place of the libtcmalloc_minimal-4.dll dll. The shim simply exports the __tcmalloc function, and then just calls plain old malloc. Putting the shim in the place of libtcmalloc_minimal-4 eliminates the issue, and I now have the 2.0 beta couchbase running just fine on the RTM build of Windows 8.
So there is a workaround. If anyone else needs this, I can send them the shim library.
That’s very cool! One issue that pops to mind is that the system uses some tcmalloc-only statistics functions in order to manage its overall memory utilization (such as to decide when to start ejecting values from memory). Not sure how just the __tcmalloc function export covers that, so I’m amazed it works! But, I’m not the expert in that area.