Issues running Couchbase / memcached on Windows 8 RTM?

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.)

Unfortunately, we currently don’t support Windows 8. (http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-getting-sta…)

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.

-Chris Wundram

Hi Chris,

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.

Steve

Hi Chris,

The groundwork sounds great , can you please share the new shim library.

Thanks
Andrei

I put the info in http://www.couchbase.com/issues/browse/MB-6395

Would you mind cross posting your fix information on their JIRA, so they can get to fixing it?

Do we have an estimate when Windows 2012 x64 will be officially supported?