signal-cli icon indicating copy to clipboard operation
signal-cli copied to clipboard

signal-cli 0.12.2 ill-formed UTF-16

Open selfbc opened this issue 2 years ago • 2 comments

Going from Signal-cli 0.12.1 to Signal-cli 0.12.2 amd64 works for awhile, and then fails with the following repeatedly: 2023-10-07T11:48:53.059-0400 [daemon-connection-0] WARN c.google.protobuf.CodedOutputStream - Converting ill-formed UTF-16. Your Protocol Buffer will not round trip correctly! com.google.protobuf.Utf8$UnpairedSurrogateException: Unpaired surrogate at index 1998 of 2000 at com.google.protobuf.Utf8$UnsafeProcessor.encodeUtf8(Utf8.java:1506) at com.google.protobuf.Utf8.encode(Utf8.java:294) at com.google.protobuf.CodedOutputStream$ArrayEncoder.writeStringNoTag(CodedOutputStream.java:1466) at com.google.protobuf.CodedOutputStream$ArrayEncoder.writeString(CodedOutputStream.java:1225) at com.google.protobuf.CodedOutputStreamWriter.writeString(CodedOutputStreamWriter.java:125) at com.google.protobuf.MessageSchema.writeString(MessageSchema.java:4618) at com.google.protobuf.MessageSchema.writeFieldsInAscendingOrder(MessageSchema.java:2200) at com.google.protobuf.MessageSchema.writeTo(MessageSchema.java:2096) at com.google.protobuf.CodedOutputStream$ArrayEncoder.writeMessage(CodedOutputStream.java:1291) at com.google.protobuf.CodedOutputStreamWriter.writeMessage(CodedOutputStreamWriter.java:155) at com.google.protobuf.MessageSchema.writeFieldsInAscendingOrder(MessageSchema.java:2207) at com.google.protobuf.MessageSchema.writeTo(MessageSchema.java:2096) at com.google.protobuf.GeneratedMessageLite.writeTo(GeneratedMessageLite.java:338) at com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:71) at org.whispersystems.signalservice.api.crypto.EnvelopeContent$Encrypted.processSealedSender(EnvelopeContent.java:83) at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.encrypt(SignalServiceCipher.java:124) at org.whispersystems.signalservice.api.SignalServiceMessageSender.getEncryptedMessage(SignalServiceMessageSender.java:2605) at org.whispersystems.signalservice.api.SignalServiceMessageSender.getEncryptedMessages(SignalServiceMessageSender.java:2563) at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:2169) at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendContent(SignalServiceMessageSender.java:486) at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendDataMessage(SignalServiceMessageSender.java:439) at org.asamk.signal.manager.helper.SendHelper.lambda$sendMessage$19(SendHelper.java:655) at org.asamk.signal.manager.helper.SendHelper.handleSendMessage(SendHelper.java:680) at org.asamk.signal.manager.helper.SendHelper.sendMessage(SendHelper.java:653) at org.asamk.signal.manager.helper.SendHelper.sendMessage(SendHelper.java:96) at org.asamk.signal.manager.internal.ManagerImpl.sendMessage(ManagerImpl.java:490) at org.asamk.signal.manager.internal.ManagerImpl.sendMessage(ManagerImpl.java:474) at org.asamk.signal.manager.internal.ManagerImpl.sendMessage(ManagerImpl.java:595) at org.asamk.signal.commands.SendCommand.handleCommand(SendCommand.java:227) at org.asamk.signal.commands.JsonRpcLocalCommand.handleCommand(JsonRpcLocalCommand.java:25) at org.asamk.signal.commands.JsonRpcLocalCommand.handleCommand(JsonRpcLocalCommand.java:15) at org.asamk.signal.jsonrpc.SignalJsonRpcCommandHandler$CommandRunnerImpl.handleCommand(SignalJsonRpcCommandHandler.java:150) at org.asamk.signal.jsonrpc.SignalJsonRpcCommandHandler.parseParamsAndRunCommand(SignalJsonRpcCommandHandler.java:261) at org.asamk.signal.jsonrpc.SignalJsonRpcCommandHandler.runCommand(SignalJsonRpcCommandHandler.java:209) at org.asamk.signal.jsonrpc.SignalJsonRpcCommandHandler.handleRequest(SignalJsonRpcCommandHandler.java:63) at org.asamk.signal.jsonrpc.SignalJsonRpcDispatcherHandler.lambda$handleConnection$4(SignalJsonRpcDispatcherHandler.java:137) at org.asamk.signal.jsonrpc.JsonRpcReader.handleRequest(JsonRpcReader.java:104) at org.asamk.signal.jsonrpc.JsonRpcReader.handleMessage(JsonRpcReader.java:80) at org.asamk.signal.jsonrpc.JsonRpcReader.readMessages(JsonRpcReader.java:69) at org.asamk.signal.jsonrpc.SignalJsonRpcDispatcherHandler.handleConnection(SignalJsonRpcDispatcherHandler.java:137) at org.asamk.signal.jsonrpc.SignalJsonRpcDispatcherHandler.handleConnection(SignalJsonRpcDispatcherHandler.java:63) at org.asamk.signal.commands.DaemonCommand.lambda$runSocketMultiAccount$4(DaemonCommand.java:274) at org.asamk.signal.commands.DaemonCommand.lambda$runSocket$5(DaemonCommand.java:299) at [email protected]/java.lang.Thread.run(Thread.java:833) at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775) at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)

I would revert back to 0.12.1 since it's stable, but Android attachments are currently broken in that build.

selfbc avatar Oct 09 '23 16:10 selfbc

Does it actually fail to send the message? This is just a WARNing. Not sure where the invalid UTF-16 char is coming from though ... Would be interesting to check if this also occurs with the latest master or next version, as the com.google.protobuf library has been replaced by wire in the newer libsignal-service-java.

AsamK avatar Oct 10 '23 12:10 AsamK

I'm on the latest master now. It actually stopped sending messages but they went through for the first few hours of that error hitting the logs. I'm not sure the precise point they stopped, but the logs were flooded with that error.

selfbc avatar Oct 10 '23 17:10 selfbc