Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker/Arch/Ubuntu: Cannot receive image attachment (out of memory) #3560

Closed
1 task done
mvasi90 opened this issue Sep 4, 2019 · 22 comments
Closed
1 task done

Docker/Arch/Ubuntu: Cannot receive image attachment (out of memory) #3560

mvasi90 opened this issue Sep 4, 2019 · 22 comments

Comments

@mvasi90
Copy link

mvasi90 commented Sep 4, 2019

  • I have searched open and closed issues for duplicates. This problem has been around for a long time but it is not solved.

Bug Description

Impossible to use Signal Desktop if images are sent or received. It does not matter if the images are photos or emojis. Even when I open the panel (the palette) of emojis, Signal crashes. The blue screen appears.

Steps to Reproduce

  1. Send or receive a picture, or open emojis panel.
  2. Boom! Blue screen after picture loading.

Actual Result:

Blue screen (formerly white screen).

Screenshots

signal

Platform Info

Signal Version: Desktop v1.25.3

Operating System: Linux Distribution: Arch Linux, Kernel: 5.1.15 (Docker: Ubuntu 18.04)

Link to Debug Log

https://debuglogs.org/5228b003c99b79556c9598171debd25d8f5c06f3cc0e32df764082cb597fa49a

@scottnonnenberg-signal
Copy link
Contributor

How do you install Signal Desktop?

@mvasi90
Copy link
Author

mvasi90 commented Sep 4, 2019

How do you install Signal Desktop?

Using a dockerfile and
sudo docker build --tag signal .

$ cat dockerfile

FROM ubuntu
ENV DISPLAY=:0
ENV TZ=Europe/Paris
ENV LC_ALL=fr_FR.UTF-8
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y libx11-xcb-dev curl gpg locales && \
        curl -s https://updates.signal.org/desktop/apt/keys.asc | apt-key add - && \
        echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" >> /etc/apt/sources.list.d/signal-xenial.list && \
        apt-get update && apt-get install -y bash-completion vim screen signal-desktop || while [ $? -ne 0 ]; do apt-get install -y bash-completion vim screen signal-desktop; done
RUN echo "set number\nset hlsearch\nset ignorecase\nset autoindent" >> /etc/vim/vimrc && useradd --create-home user && \
        echo "Europe/Paris" > /etc/tiemzone && \
        apt-get install -y tzdata && \
        apt-get -y autoremove && apt-get -y clean && \
        sed -i 's/#\s*fr_FR.UTF-8/fr_FR.UTF-8/' /etc/locale.gen && locale-gen

USER user
WORKDIR /home/user
CMD signal-desktop

Install commands:

curl -s https://updates.signal.org/desktop/apt/keys.asc | apt-key add - 
echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" >> /etc/apt/sources.list.d/signal-xenial.list 
apt-get update && apt-get install -y signal-desktop

@scottnonnenberg-signal
Copy link
Contributor

I do see a typo in there /etc/tiemzone. But no other obvious errors.

Something to look for when you next start the app is what is in the dev console - View -> Toggle Developer Tools. It may have errors that don't make it to the log.

Also, please post complete logs next time you provide a debug log. Small sections don't give us the comprehensive picture we need of history and present state combined.

@mvasi90
Copy link
Author

mvasi90 commented Sep 4, 2019

Something to look for when you next start the app is what is in the dev console - View -> Toggle Developer Tools. It may have errors that don't make it to the log.

I can't, because after the application crashes the developer tools panel disappears. If I insist several times it reopens but it is all blank because it has no source code.

Also, please post complete logs next time you provide a debug log. Small sections don't give us the comprehensive picture we need of history and present state combined.

This is the complete log and part of another (previous log). The application starts on the following line:

{"name":"log","hostname":"sadfasdf","pid":6,"level":30,"msg":"app ready","time":1979-10-10T10:52:21.2311,"v":0}

In the last (or penultimate) line the app fails. But the error is not related to the last line, it must be a thread that tries to load the image.

@mvasi90
Copy link
Author

mvasi90 commented Oct 4, 2019

Hello,

After upgrading to version 1.27.3, I got more information:

Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /opt/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
userData: /home/user/.config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"app ready","time":"2019-10-04T12:37:17.868Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"starting version 1.27.3","time":"2019-10-04T12:37:17.869Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"updateSchema:\n  Current user_version: 18;\n  Most recent db schema: 18;\n  SQLite version: 3.28.0;\n  SQLCipher version: 4.2.0 community;\n  (deprecated) schema_version: 92;\n","time":"2019-10-04T12:37:17.885Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Initializing BrowserWindow config: {\"show\":true,\"width\":1916,\"height\":1029,\"minWidth\":640,\"minHeight\":550,\"autoHideMenuBar\":false,\"backgroundColor\":\"#2090EA\",\"vibrancy\":\"appearance-based\",\"webPreferences\":{\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"contextIsolation\":false,\"preload\":\"/opt/Signal/resources/app.asar/preload.js\",\"nativeWindowOpen\":true},\"icon\":\"/opt/Signal/resources/app.asar/images/icon_256.png\",\"maximized\":false,\"x\":2,\"y\":24}","time":"2019-10-04T12:37:17.904Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Detected Linux. Setting up spell check with locale es_ES and dictionary location /usr/share/hunspell","time":"2019-10-04T12:37:18.875Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"pre-main prep time: 3 ms","time":"2019-10-04T12:37:19.077Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Build expires:  2019-12-24T21:29:17.000Z","time":"2019-10-04T12:37:19.126Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Preloading emoji images","time":"2019-10-04T12:37:19.139Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"background page reloaded","time":"2019-10-04T12:37:19.149Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"environment: production","time":"2019-10-04T12:37:19.149Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 1 (getItemById) succeeded in 56ms","time":"2019-10-04T12:37:19.206Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Storage fetch","time":"2019-10-04T12:37:19.207Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 2 (getAllItems) succeeded in 71ms","time":"2019-10-04T12:37:19.279Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 3 (createOrUpdateItem) succeeded in 99ms","time":"2019-10-04T12:37:19.382Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Starting background data migration. Target version: 10","time":"2019-10-04T12:37:19.382Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"ConversationController: starting initial fetch","time":"2019-10-04T12:37:19.382Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 5 (getAllStickerPacks) succeeded in 15ms","time":"2019-10-04T12:37:19.398Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 6 (getAllStickers) succeeded in 16ms","time":"2019-10-04T12:37:19.398Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 7 (getRecentStickers) succeeded in 16ms","time":"2019-10-04T12:37:19.399Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 8 (getRecentEmojis) succeeded in 16ms","time":"2019-10-04T12:37:19.399Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 9 (getAllIdentityKeys) succeeded in 17ms","time":"2019-10-04T12:37:19.399Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SignalProtocolStore: Finished caching identityKeys data","time":"2019-10-04T12:37:19.399Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"ConversationController: done with initial fetch","time":"2019-10-04T12:37:19.402Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SignalProtocolStore: Finished caching sessions data","time":"2019-10-04T12:37:19.404Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SignalProtocolStore: Finished caching preKeys data","time":"2019-10-04T12:37:19.415Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SignalProtocolStore: Finished caching signedPreKeys data","time":"2019-10-04T12:37:19.418Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Cleanup: starting...","time":"2019-10-04T12:37:19.420Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Cleanup: Found 0 messages for cleanup","time":"2019-10-04T12:37:19.423Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Cleanup: complete","time":"2019-10-04T12:37:19.423Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"listening for registration events","time":"2019-10-04T12:37:19.423Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Next signed key rotation scheduled for 2019-10-06T11:31:27.035Z","time":"2019-10-04T12:37:19.425Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"refreshSenderCertificate: Getting new certificate...","time":"2019-10-04T12:37:19.426Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/certificate/delivery","time":"2019-10-04T12:37:19.427Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"connect","time":"2019-10-04T12:37:19.435Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"getAllFromCache","time":"2019-10-04T12:37:19.436Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"opening message socket https://textsecure-service.whispersystems.org","time":"2019-10-04T12:37:19.436Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Start idle detector","time":"2019-10-04T12:37:19.439Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"open inbox","time":"2019-10-04T12:37:19.439Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 16 (getNextExpiringMessage) succeeded in 25ms","time":"2019-10-04T12:37:19.450Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"next message expires 2019-10-07T16:18:19.705Z","time":"2019-10-04T12:37:19.451Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 17 (getNextTapToViewMessageToAgeOut) succeeded in 26ms","time":"2019-10-04T12:37:19.451Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 18 (getUnprocessedCount) succeeded in 21ms","time":"2019-10-04T12:37:19.457Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 19 (resetAttachmentDownloadPending) succeeded in 19ms","time":"2019-10-04T12:37:19.458Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"getAllFromCache loaded 0 saved envelopes","time":"2019-10-04T12:37:19.462Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Done preloading emoji images in 1331ms","time":"2019-10-04T12:37:20.471Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 22 (createOrUpdateItem) succeeded in 109ms","time":"2019-10-04T12:37:20.506Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/certificate/delivery 200 Success","time":"2019-10-04T12:37:20.769Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Next sender certificate refresh scheduled for 2019-10-05T12:37:20.775Z","time":"2019-10-04T12:37:20.776Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/profile/+[REDACTED]586 (unauth)","time":"2019-10-04T12:37:20.787Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"websocket open","time":"2019-10-04T12:37:20.823Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"got request PUT /api/v1/queue/empty","time":"2019-10-04T12:37:20.829Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"MessageReceiver: finished processing messages after 'empty', now waiting for application","time":"2019-10-04T12:37:20.836Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"MessageReceiver: emitting 'empty' event","time":"2019-10-04T12:37:20.837Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"updater/start: Updates disabled - not starting new version checks","time":"2019-10-04T12:37:20.838Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 23 (createOrUpdateItem) succeeded in 116ms","time":"2019-10-04T12:37:20.890Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/profile/+[REDACTED]586 200 Success","time":"2019-10-04T12:37:22.059Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Setting sealedSender to ENABLED for conversation +[REDACTED]586","time":"2019-10-04T12:37:22.061Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://cdn.signal.org/profiles/profile-id","time":"2019-10-04T12:37:22.062Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":50,"msg":"GET https://cdn.signal.org/profiles/profile-id","time":"2019-10-04T12:37:23.398Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"open inbox","time":"2019-10-04T12:37:25.255Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/profile/+[REDACTED]549 (unauth)","time":"2019-10-04T12:37:25.331Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 24 (getMessageMetricsForConversation) succeeded in 31ms","time":"2019-10-04T12:37:25.338Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 25 (getOlderMessagesByConversation) succeeded in 13ms","time":"2019-10-04T12:37:25.340Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://textsecure-service.whispersystems.org/v1/profile/+[REDACTED]549 200 Success","time":"2019-10-04T12:37:25.590Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Setting sealedSender to UNRESTRICTED for conversation +[REDACTED]549","time":"2019-10-04T12:37:25.591Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://cdn.signal.org/profiles/profile-id","time":"2019-10-04T12:37:25.591Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"SQL channel job 30 (updateConversation) succeeded in 104ms","time":"2019-10-04T12:37:25.908Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"GET https://cdn.signal.org/profiles/profile-id","time":"2019-10-04T12:37:26.125Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Upgrade message schema (with index): {\"done\":true,\"numProcessed\":0,\"fetchDuration\":3,\"upgradeDuration\":0,\"saveDuration\":0,\"totalDuration\":3}","time":"2019-10-04T12:37:29.541Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Background migration complete. Stopping idle detector.","time":"2019-10-04T12:37:29.542Z","v":0}
{"name":"log","hostname":"46286e9db80c","pid":6,"level":30,"msg":"Stop idle detector","time":"2019-10-04T12:37:29.542Z","v":0}
[6:1004/143751.734853:FATAL:memory.cc(22)] Out of memory. size=344064
Trace/breakpoint trap (core dumped)

The current dockerfile I use is:

# Audio without root:
# sudo docker run -it -d --name signal --volume /tmp/.X11-unix/:/tmp/.X11-unix --device /dev/snd --group-add `getent group audio | cut -d: -f3` localhost:5000/signal

FROM ubuntu
ENV DISPLAY=:0
ENV TZ=Europe/Paris
ENV LC_ALL=fr_FR.UTF-8
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y libx11-xcb-dev curl gpg locales && \
        curl -s https://updates.signal.org/desktop/apt/keys.asc | apt-key add - && \
        echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" >> /etc/apt/sources.list.d/signal-xenial.list && \
        apt-get update && apt-get install -y bash-completion vim screen signal-desktop || while [ $? -ne 0 ]; do apt-get install -y bash-completion vim screen signal-desktop; done
RUN echo "set number\nset hlsearch\nset ignorecase\nset autoindent" >> /etc/vim/vimrc && useradd --create-home user && \
        echo "Europe/Paris" > /etc/timezone && \
        apt-get install -y tzdata && \
        apt-get -y autoremove && apt-get -y clean && \
        sed -i 's/#\s*fr_FR.UTF-8/fr_FR.UTF-8/' /etc/locale.gen && locale-gen

USER user
WORKDIR /home/user
CMD signal-desktop --no-sandbox

PostData: This happens when I open an image (received) and change the window (another application). Then Signal freezes and closes. It seems that the problem of emojis no longer exists.

@scottnonnenberg-signal
Copy link
Contributor

[6:1004/143751.734853:FATAL:memory.cc(22)] Out of memory. size=344064

That number doesn't seem very high. Perhaps you need to devote more RAM to that docker instance? Or your computer needs more RAM?

Has Signal Desktop ever worked for you, by the way?

@mvasi90
Copy link
Author

mvasi90 commented Oct 4, 2019

Perhaps you need to devote more RAM to that docker instance? Or your computer needs more RAM?

My computer has 16GB of RAM. I have not set a limit to docker; it have access to all available ram memory.

Has Signal Desktop ever worked for you, by the way?

Yes. The only problem has been and remains the images (sent or received).

@scottnonnenberg-signal
Copy link
Contributor

Do you run Chromium or Chrome on that machine? Have you tried starting the app with --disable-gpu?

@mvasi90
Copy link
Author

mvasi90 commented Oct 4, 2019

I have Google Chrome but I don't use it for privacy reasons.

Now I tested signal with "--disable-gpu" and I have the same results:
[1:1004/203821.142761:FATAL:memory.cc(22)] Out of memory. size=24576

@mvasi90
Copy link
Author

mvasi90 commented Oct 4, 2019

Steps to reproduce this issue:

  1. Receive a picture on Signal desktop (Linux in my case)
  2. Open the picture (full screen)
  3. Go to another application (change screen). Signal receive idle signal and freezes (not responding). On select any menu item, Signal crashes.

My system: ArchLinux with a window manager i3wm. Signal desktop running on Ubuntu docker container.

@scottnonnenberg-signal
Copy link
Contributor

The reason to test Chromium's handling of images - Signal Desktop is based on Chromium technology.

@mvasi90
Copy link
Author

mvasi90 commented Oct 4, 2019

They are the consequence of not designing your own libraries and using third parties. (The nonsense of "not reinventing the wheel").

Signal has its own protocols, it should also have its own libraries. That way you don't depend on third parties.

In Google there is chaos. Nothing works well. Not to mention the huge lack of privacy.

@mvasi90
Copy link
Author

mvasi90 commented Oct 16, 2019

More information:

I send myself a picture from another smartphone.
I opened Signal desktop and quickly opened the developer console.

The message "DevTools was disconnected from the page." appears a second or two after the last 403 error. GET https://cdn..signal.org/profiles....
But the last line is likely to be the key. GET https://cdn.signal.org/attachments...

signal-desktop-bug

@scottnonnenberg-signal scottnonnenberg-signal changed the title Blue screen (formerly white screen) on image loading Arch/Ubuntu: Cannot receive image attachment (out of memory) Oct 16, 2019
@scottnonnenberg-signal
Copy link
Contributor

The scenario you describe is very simple: receiving a photo on Ubuntu Linux. We've tested that; it absolutely works.

What we need you to do is track this down to the specific hardware/software/configuration causing it on your machine. Trying Chrome will help you do that. I'm going to leave this open, but it's very unlikely that a change on our side will fix this for you.

@mvasi90
Copy link
Author

mvasi90 commented Oct 16, 2019

Okay. But how I can do that?
I'm using Chrome and it works. Which is the problem?
I should test any special javascript library on Chrome? Signal has a web service to test it? (I don't think so).

Have you tried Signal Desktop in a docker container on Linux and it works? Then I should try Chrome also in a docker container without Signal?
If I open an image manually in Chrome it works. Even in Signal it works, but a few seconds later, Signal freezes. But with Chrome that does not happen.

So I think that something different does Signal and I have not seen the source code of Signal to know how it does. I'm very busy.

It is probably some kernel 5.x configuration. ArchLinux always uses the latest kernel version and Debian users (Ubuntu, and others) take a long time to have it. Most do not even use Linux.
Docker settings are default (unmodified). It is a clean installation of the ArchLinux distribution.

If you tell me more precisely what I should try, I will.

@chiveturkey
Copy link

I've been watching this thread with interest, because I've been having a similar (but not identical) issue. I'm running Signal Desktop on Debian in a Docker container, and my host OS is Fedora. When I receive some (but not all) pictures, I get the Blue Screen. The only way to recover (that I know of) is to delete the contents of my ~/.config/Signal directory. Then things work fine until I receive a picture that causes the failure again.

To troubleshoot, I found two JPGs that, as far as I could tell, had identical encodings/JPG subversions. The only difference was that one was 400K and the other was 2M. The 400K JPG worked fine every time. The 2M JPG caused the Blue Screen every time.

Further, I installed chromium (not chrome) in my Debian Docker container as @scottnonnenberg-signal suggested and ran it by modifying my docker run to docker run -it --rm [...misc params...] signal chromium --no-sandbox --user-data-dir=/home/signal. As hoped, both JPGs opened without issue. After a bit of reading, I ran chrome://gpu and noted two things. 1) Chromium recognizes my virtualized GPU as a VMWare GPU, and 2) chromium was running with --ignore-gpu-blacklist.

After the above, I found that, 1) if I installed the chromium package and dependencies and 2) ran signal-desktop with --ignore-gpu-blacklist, I could open the 2M JPG just fine. Further, I've been running it this way for days now (and have received other images in that time), and I haven't gotten a Blue Screen since.

Thoughts. I doubt that the chromium package itself is what's important. I suspect it's one of its dependencies that I was missing. It pulls in many dependencies, though, and I haven't taken the time to research this further and figure out which were the crucial packages.

More thoughts. I don't know if this will solve the problem @mvasi90 is having, but it has (apparently) solved mine. And I do feel like there's a clue here for @mvasi90's issue.

@mvasi90
Copy link
Author

mvasi90 commented Nov 2, 2019

@chiveturkey Install another +500MB of misery?
What will docker portability become with that?

The Signal desktop client could have 10MB, but how much does it really have? Much more and now are you saying that it works better with another half gigabyte.

There is a lack of professionalism and qualified programmers here.

@scottnonnenberg-signal scottnonnenberg-signal changed the title Arch/Ubuntu: Cannot receive image attachment (out of memory) Docker/Arch/Ubuntu: Cannot receive image attachment (out of memory) Nov 4, 2019
@lilunshortay
Copy link

@chiveturkey I'm not sure what type of black magic you're doing. +500MB in today's society is super expensive so on top of lacking professionalism you want us to waste our money also? Your fix to this solution isn't the fix I can't figure out so it's clearly wrong.

@mvasi90
Copy link
Author

mvasi90 commented Nov 7, 2019

@chiveturkey money? All a developer need is time, not money.

Doing things right saves time on solutions. I'm wrong?

Developing a good software without hundreds of problematic libraries has two benefits: save space and save third-party problems. (Without wasting your time as a developer and without wasting my time as a user and saving 90% of space on disk and RAM). I' wrong?

The problem is that people always look for easy things and finish fast.

As instance:
Ubuntu instead Arch or Gentoo, etc. (Big buttons like "Next", "Install").
AppArmor instead SELinux (Designing own Multi-category or Multi-level policies? What's that? I need big buttons to click it...)
Electron, JavaScript, Python instead C++, Rust etc. (Easy easy. No pointers, no allocations, etc).

Signal client can be 10MB and use 10% of current CPU and RAM usage.
#2178

I am wrong?

@scottnonnenberg-signal
Copy link
Contributor

The forums are the right place for discussion, not Github Issues. You're notifying all watchers of this repo with every comment. https://community.signalusers.org/

@stale
Copy link

stale bot commented Sep 27, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Sep 27, 2021
@stale
Copy link

stale bot commented Oct 4, 2021

This issue has been closed due to inactivity.

@stale stale bot closed this as completed Oct 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants