Almighty-Alpaca / JetBrains-Discord-Integration

Discord rich presence integration for all JetBrains IDEs
https://plugins.jetbrains.com/plugin/10233-discord-integration
Apache License 2.0
582 stars 63 forks source link

Linux: SIGSEGV at [libc] in com.sun.jna.Native.getStringBytes #153

Open vprovodin opened 3 years ago

vprovodin commented 3 years ago

The following SIGSEGV was observed on IDEA and PyCharm.

Crash reports: EA issue: EA-240309

observed starting since 203.6682.181 it also observed with the latest IDEs:

Crash signature:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f5c1b4d3675, pid=109466, tid=109973
#
# JRE version: OpenJDK Runtime Environment JBR-11.0.10.9-1341.35-dcevm (11.0.10+9) (build 11.0.10+9-b1341.35)
# Java VM: Dynamic Code Evolution 64-Bit Server VM JBR-11.0.10.9-1341.35-dcevm (11.0.10+9-b1341.35, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libc.so.6+0x18b675]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/alancjo/core.109466)
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Xms128m -Xmx995m -XX:ReservedCodeCacheSize=512m -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -ea -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Dsun.tools.attach.tmp.only=true -Dide.no.platform.update=true -XX:+UseG1GC -XX:ErrorFile=/home/alancjo/java_error_in_rubymine_%p.log -XX:HeapDumpPath=/home/alancjo/java_error_in_rubymine_.hprof -Didea.vendor.name=JetBrains -Didea.paths.selector=RubyMine2021.1 -Djb.vmOptionsFile=/home/alancjo/.local/share/JetBrains/Toolbox/apps/RubyMine/ch-0/211.6693.118.vmoptions -Didea.platform.prefix=Ruby com.intellij.idea.Main

Host: AMD Ryzen 5 1600 Six-Core Processor, 12 cores, 7G, Ubuntu 20.04.2 LTS
Time: Fri Apr 16 18:18:28 2021 -03 elapsed time: 32.466606 seconds (0d 0h 0m 32s)

---------------  T H R E A D  ---------------

Current thread (0x00007f5a9c2fe000):  JavaThread "pool-6-thread-1" [_thread_in_native, id=109973, stack(0x00007f5a64029000,0x00007f5a6412a000)]

Stack: [0x00007f5a64029000,0x00007f5a6412a000],  sp=0x00007f5a64126aa8,  free space=1014k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libc.so.6+0x18b675]
j  com.sun.jna.Native.getStringBytes(Lcom/sun/jna/Pointer;JJ)[B+0
j  com.sun.jna.Native.getString(Lcom/sun/jna/Pointer;JLjava/lang/String;)Ljava/lang/String;+6
j  com.sun.jna.Pointer.getString(JLjava/lang/String;)Ljava/lang/String;+3
j  com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object;+134
j  com.sun.jna.Structure.read()V+100
j  com.sun.jna.Structure.autoRead()V+8
j  com.sun.jna.Structure.conditionalAutoRead()V+8
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.convertArgument(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+193
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback([Ljava/lang/Object;)Ljava/lang/Object;+95
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.callback([Ljava/lang/Object;)Ljava/lang/Object;+2
v  ~StubRoutines::call_stub
V  [libjvm.so+0x86f381]  JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x331
V  [libjvm.so+0x8e8a90]  jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) [clone .constprop.311]+0x2c0
V  [libjvm.so+0x8e9406]  jni_CallObjectMethod+0x166
C  [jna7956050195740131621.tmp+0xdd53]
C  [jna7956050195740131621.tmp+0xe5bb]
C  [jna7956050195740131621.tmp+0x12bdc]  ffi_closure_unix64_inner+0x19c
C  [jna7956050195740131621.tmp+0x12f2e]  ffi_closure_unix64+0x46
C  [jna7956050195740131621.tmp+0x12dc6]  ffi_call_unix64+0x4c

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.jna.Native.getStringBytes(Lcom/sun/jna/Pointer;JJ)[B+0
j  com.sun.jna.Native.getString(Lcom/sun/jna/Pointer;JLjava/lang/String;)Ljava/lang/String;+6
j  com.sun.jna.Pointer.getString(JLjava/lang/String;)Ljava/lang/String;+3
j  com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object;+134
j  com.sun.jna.Structure.read()V+100
j  com.sun.jna.Structure.autoRead()V+8
j  com.sun.jna.Structure.conditionalAutoRead()V+8
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.convertArgument(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+193
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback([Ljava/lang/Object;)Ljava/lang/Object;+95
j  com.sun.jna.CallbackReference$DefaultCallbackProxy.callback([Ljava/lang/Object;)Ljava/lang/Object;+2
v  ~StubRoutines::call_stub
j  com.sun.jna.Native.invokeVoid(Lcom/sun/jna/Function;JI[Ljava/lang/Object;)V+0
j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object;+42
j  com.sun.jna.Function.invoke(Ljava/lang/reflect/Method;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+271
j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
j  com.sun.proxy.$Proxy85.Discord_RunCallbacks()V+9
j  com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.connection.NativeRpcConnection.runCallbacks()V+14
j  com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.connection.NativeRpcConnection.access$runCallbacks(Lcom/almightyalpaca/jetbrains/plugins/discord/plugin/rpc/connection/NativeRpcConnection;)V+1
j  com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.connection.NativeRpcConnection$connect$1.invoke()V+7
j  com.almightyalpaca.jetbrains.plugins.discord.plugin.rpc.connection.NativeRpcConnection$connect$1.invoke()Ljava/lang/Object;+1
j  com.almightyalpaca.jetbrains.plugins.discord.plugin.utils.AsyncKt$sam$java_lang_Runnable$0.run()V+4
J 15363 c1 java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object; java.base@11.0.10 (14 bytes) @ 0x00007f5bf25938ac [0x00007f5bf2593840+0x000000000000006c]
j  java.util.concurrent.FutureTask.runAndReset()Z+44 java.base@11.0.10
j  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run()V+35 java.base@11.0.10
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+92 java.base@11.0.10
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 java.base@11.0.10
j  java.lang.Thread.run()V+11 java.base@11.0.10
v  ~StubRoutines::call_stub

Descriptions:

Note: the crashes could not be reproduced

According to the stack trace, the crash was caused by the plugin Discord Integration by Almighty Alpaca

See JBR-3332

b-ncMN commented 3 years ago

Translation of the first bulleted element : "J'ai créer une nouvelle branche Git pour mon projet. Sur Ubuntu 20.10-amd64 (Avec Java 15 d'installer)"

"I created new git branch on my project. On ubuntu 20.10-amd64 (with java 15 installed)"

b-ncMN commented 3 years ago

@Almighty-Alpaca Any ideas?

Almighty-Alpaca commented 3 years ago

I have no idea what could've caused this. But whatever it was it'll go away with #130.