Hello there
I am new to Couchbase but I was able to go through the documentation of the Java SDSK to find the ressources I need to do the operations I’m interested in, basically accessing documents from collections from scopes from buckets, but I am facing a SIGSEGV fatal error in a situation I do not understand:
In my development, I have been able to use the SDK to retrieve buckets, scopes, collections and documents without any problems, using the Couchbase official Docker image containing sample data, and also using TestContainers Couchbase Module for my unit tests, filling my Couchbase container with my own sample data. So far, everything works fine this way.
But once I have built my application in a zip with Gradle and I start to use it, I pass successfully the connection to the cluster, and after retrieving the BucketManager of my cluster, at its very first use to get all buckets, my application crashes and I get the following error message:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000110d94a8b, pid=19845, tid=0x0000000000015003
#
# JRE version: OpenJDK Runtime Environment (8.0_282) (build 1.8.0_282-bre_2021_01_20_16_06-b00)
# Java VM: OpenJDK 64-Bit Server VM (25.282-b00 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V [libjvm.dylib+0x565a8b]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
The code that is run at the moment of the crash is the following getBucketList() method, and the error occurs at the call of “bucketManager.getAllBuckets();” method:
public class CouchbaseDataService {
private final Cluster cluster;
public CouchbaseDataService(String url, String username, String password) {
this.cluster = Cluster.connect(url, username, password);
}
public List<String> getBucketList() {
BucketManager bucketManager = this.cluster.buckets();
Map<String, BucketSettings> allBuckets = bucketManager.getAllBuckets();
return new ArrayList<>(allBuckets.keySet());
}
Here are some details about my development environment
- macOS version 12.0.1
- IntelliJ Community Edition 2021.1
- Gradle version 7.2
- Java 11
Please let me know how I could bring more information to help.
Best regards,
Cyrille Dakhlia