jonls / redshift

Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
http://jonls.dk/redshift
GNU General Public License v3.0
5.91k stars 429 forks source link

redshift-gtk segfault when using systemd enabled #265

Open dhensen opened 9 years ago

dhensen commented 9 years ago

Hello,

I'm running redshift on arch linux and I want to use it by doing: systemctl --user enable redshift-gtk When I reboot and login (GDM+Gnome) redshift is not started. I look in logs:

dmesg | grep redshift
[   34.916805] redshift-gtk[617]: segfault at 0 ip 00007fec6f55c849 sp 00007ffd85aa24d0 error 4 in libgtk-3.so.0.1800.2[7fec6f2a2000+70e000]
[   35.400597] redshift-gtk[630]: segfault at 0 ip 00007f4f87166849 sp 00007ffda9a26440 error 4 in libgtk-3.so.0.1800.2[7f4f86eac000+70e000]
[   35.863028] redshift-gtk[635]: segfault at 0 ip 00007fd38b1ef849 sp 00007ffc13e11be0 error 4 in libgtk-3.so.0.1800.2[7fd38af35000+70e000]
[   36.322000] redshift-gtk[643]: segfault at 0 ip 00007f1b4ffb4849 sp 00007ffc887ac8f0 error 4 in libgtk-3.so.0.1800.2[7f1b4fcfa000+70e000]
[   37.033438] redshift-gtk[653]: segfault at 0 ip 00007f2054ddc849 sp 00007ffca7327f40 error 4 in libgtk-3.so.0.1800.2[7f2054b22000+70e000]

(I believe this happens 5 time because of 4 retries that systemd does, but correct me if I'm wrong)

There seems to be a segfault in libgtk, but when I execute systemctl --user start redshift-gtk everything runs ok. I am also running arch' latest version of systemd that has the XAUTHORITY and DISPLAY set through a script. (https://wiki.archlinux.org/index.php/Systemd/User#DISPLAY_and_XAUTHORITY)

Let me know how I can help resolve this.

jonls commented 9 years ago

It would definitely be great to have a backtrace from gdb. I'm not sure how to go about obtaining such a backtrace when the crash only happens as it is started from systemd. Perhaps somebody here knows a good way to debug this? Also, this issue is probably not specific to Redshift. Maybe ask the people at Arch Linux or GTK+ if they can help solving this?

dhensen commented 9 years ago

Thanks for the quick reply, I will take a look at getting gdb to spit out a backtrace when running from systemd. I'll come back on this in some time when I figure this out with help of Arch user forum!

ael-code commented 8 years ago

Same here:

redshift version: 1.11

> journalctl --user-unit redshift-gtk.service -b 0

-- Logs begin at Thu 2014-01-23 17:29:09 CET, end at Sat 2016-05-28 15:10:15 CEST. --
May 28 14:52:28 user systemd[475]: Started Redshift display colour temperature adjustment (GUI).
May 28 14:52:29 user redshift-gtk[486]: Unable to init server: Could not connect: Connection refused
May 28 14:52:29 user redshift-gtk[486]: Unable to init server: Could not connect: Connection refused
May 28 14:52:29 user redshift-gtk[486]: (redshift-gtk:486): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
May 28 14:52:29 user systemd[475]: redshift-gtk.service: Main process exited, code=dumped, status=11/SEGV
May 28 14:52:29 user systemd[475]: redshift-gtk.service: Unit entered failed state.
May 28 14:52:29 user systemd[475]: redshift-gtk.service: Failed with result 'core-dump'.
May 28 14:52:29 user systemd-coredump[514]: Process 486 (redshift-gtk) of user 1000 dumped core.

                                             Stack trace of thread 486:
                                             #0  0x00007fe8b9a2b619 n/a (libgtk-3.so.0)
                                             #1  0x00007fe8b98d32c8 n/a (libgtk-3.so.0)
                                             #2  0x00007fe8b98e7d64 n/a (libgtk-3.so.0)
                                             #3  0x00007fe8b98d460c n/a (libgtk-3.so.0)
                                             #4  0x00007fe8b98e7c4c n/a (libgtk-3.so.0)
                                             #5  0x00007fe8b98e7ce4 n/a (libgtk-3.so.0)
                                             #6  0x00007fe8b98d4f72 n/a (libgtk-3.so.0)
                                             #7  0x00007fe8c2c4435f g_type_create_instance (libgobject-2.0.so.0)
                                             #8  0x00007fe8c2c2622b n/a (libgobject-2.0.so.0)
                                             #9  0x00007fe8c2c27c3d g_object_newv (libgobject-2.0.so.0)
                                             #10 0x00007fe8c2c283f4 g_object_new (libgobject-2.0.so.0)
                                             #11 0x00007fe8b98f006a n/a (libgtk-3.so.0)
                                             #12 0x00007fe8b9abf197 n/a (libgtk-3.so.0)
                                             #13 0x00007fe8c2c4435f g_type_create_instance (libgobject-2.0.so.0)
                                             #14 0x00007fe8c2c2622b n/a (libgobject-2.0.so.0)
                                             #15 0x00007fe8c2c27c3d g_object_newv (libgobject-2.0.so.0)
                                             #16 0x00007fe8c30aa33c n/a (_gi.cpython-35m-x86_64-linux-gnu.so)
                                             #17 0x00007fe8c30b1a61 n/a (_gi.cpython-35m-x86_64-linux-gnu.so)
                                             #18 0x00007fe8c49a7de6 n/a (libpython3.5m.so.1.0)
                                             #19 0x00007fe8c494d0da PyObject_Call (libpython3.5m.so.1.0)
                                             #20 0x00007fe8c4a064bc PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                             #21 0x00007fe8c4a0d9e2 n/a (libpython3.5m.so.1.0)
                                             #22 0x00007fe8c4a0dac3 PyEval_EvalCodeEx (libpython3.5m.so.1.0)
                                             #23 0x00007fe8c4977b98 n/a (libpython3.5m.so.1.0)
                                             #24 0x00007fe8c494d0da PyObject_Call (libpython3.5m.so.1.0)
                                             #25 0x00007fe8c4963d64 n/a (libpython3.5m.so.1.0)
                                             #26 0x00007fe8c494d0da PyObject_Call (libpython3.5m.so.1.0)
                                             #27 0x00007fe8c49a9a10 n/a (libpython3.5m.so.1.0)
                                             #28 0x00007fe8c49a7de6 n/a (libpython3.5m.so.1.0)
                                             #29 0x00007fe8c494d0da PyObject_Call (libpython3.5m.so.1.0)
                                             #30 0x00007fe8c4a064bc PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                             #31 0x00007fe8c4a0d9e2 n/a (libpython3.5m.so.1.0)
                                             #32 0x00007fe8c4a0a6e0 PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                             #33 0x00007fe8c4a0d9e2 n/a (libpython3.5m.so.1.0)
                                             #34 0x00007fe8c4a0dac3 PyEval_EvalCodeEx (libpython3.5m.so.1.0)
                                             #35 0x00007fe8c4a0daeb PyEval_EvalCode (libpython3.5m.so.1.0)
                                             #36 0x00007fe8c4a2cc64 n/a (libpython3.5m.so.1.0)
                                             #37 0x00007fe8c4a2f175 PyRun_FileExFlags (libpython3.5m.so.1.0)
                                             #38 0x00007fe8c4a2f2e6 PyRun_SimpleFileExFlags (libpython3.5m.so.1.0)
                                             #39 0x00007fe8c4a460f4 Py_Main (libpython3.5m.so.1.0)
                                             #40 0x0000000000400ae7 main (python3.5)
                                             #41 0x00007fe8c4347741 __libc_start_main (libc.so.6)
                                             #42 0x0000000000400b89 _start (python3.5)

                                             Stack trace of thread 511:
                                             #0  0x00007fe8c440568d poll (libc.so.6)
                                             #1  0x00007fe8c294bfd6 n/a (libglib-2.0.so.0)
                                             #2  0x00007fe8c294c0ec g_main_context_iteration (libglib-2.0.so.0)
                                             #3  0x00007fe8c294c131 n/a (libglib-2.0.so.0)
                                             #4  0x00007fe8c29722b5 n/a (libglib-2.0.so.0)
                                             #5  0x00007fe8c46cf474 start_thread (libpthread.so.0)
                                             #6  0x00007fe8c440e69d __clone (libc.so.6)
May 28 14:52:29 user systemd[475]: redshift-gtk.service: Service hold-off time over, scheduling restart.
May 28 14:52:29 user systemd[475]: Stopped Redshift display colour temperature adjustment (GUI).
AlexWayfer commented 8 years ago
~ $ uname -a
Linux Alex-PC 4.7.2-1-ARCH #1 SMP PREEMPT Sat Aug 20 23:02:56 CEST 2016 x86_64 GNU/Linux
~ $ redshift -V
redshift 1.11
~ $ systemctl --user status redshift-gtk
● redshift-gtk.service - Redshift display colour temperature adjustment (GUI)
   Loaded: loaded (/usr/lib/systemd/user/redshift-gtk.service; enabled; vendor preset: enabled)
   Active: failed (Result: start-limit-hit) since Wed 2016-09-07 20:38:42 MSK; 2h 8min ago
     Docs: http://jonls.dk/redshift/
  Process: 750 ExecStart=/usr/bin/redshift-gtk (code=dumped, signal=SEGV)
 Main PID: 750 (code=dumped, signal=SEGV)

Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Unit entered failed state.
Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Failed with result 'core-dump'.
Sep 07 20:38:42 Alex-PC systemd-coredump[781]: Process 750 (redshift-gtk) of user 1000 dumped core.

                                                       Stack trace of thread 750:
                                                       #0  0x00007f1ee836d8f9 n/a (libgtk-3.so.0)
                                                       #1  0x00007f1ee82152a8 n/a (libgtk-3.so.0)
                                                       #2  0x00007f1ee8229cf4 n/a (libgtk-3.so.0)
                                                       #3  0x00007f1ee82165ec n/a (libgtk-3.so.0)
                                                       #4  0x00007f1ee8229bdc n/a (libgtk-3.so.0)
                                                       #5  0x00007f1ee8229c74 n/a (libgtk-3.so.0)
                                                       #6  0x00007f1ee8216f52 n/a (libgtk-3.so.0)
                                                       #7  0x00007f1ef013933f g_type_create_instance (libgobject-2.0.so.0)
                                                       #8  0x00007f1ef011b20b n/a (libgobject-2.0.so.0)
                                                       #9  0x00007f1ef011cc1d g_object_newv (libgobject-2.0.so.0)
                                                       #10 0x00007f1ef011d3d4 g_object_new (libgobject-2.0.so.0)
                                                       #11 0x00007f1ee8231ffa n/a (libgtk-3.so.0)
                                                       #12 0x00007f1ee84014e7 n/a (libgtk-3.so.0)
                                                       #13 0x00007f1ef013933f g_type_create_instance (libgobject-2.0.so.0)
                                                       #14 0x00007f1ef011b20b n/a (libgobject-2.0.so.0)
                                                       #15 0x00007f1ef011cc1d g_object_newv (libgobject-2.0.so.0)
                                                       #16 0x00007f1ef059f34c n/a (_gi.cpython-35m-x86_64-linux-gnu.so)
                                                       #17 0x00007f1ef05a6a71 n/a (_gi.cpython-35m-x86_64-linux-gnu.so)
                                                       #18 0x00007f1ef1e9a135 n/a (libpython3.5m.so.1.0)
                                                       #19 0x00007f1ef1e3f2d7 PyObject_Call (libpython3.5m.so.1.0)
                                                       #20 0x00007f1ef1ef9aeb PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                                       #21 0x00007f1ef1eff2c3 n/a (libpython3.5m.so.1.0)
                                                       #22 0x00007f1ef1eff3a3 PyEval_EvalCodeEx (libpython3.5m.so.1.0)
                                                       #23 0x00007f1ef1e6a008 n/a (libpython3.5m.so.1.0)
                                                       #24 0x00007f1ef1e3f2d7 PyObject_Call (libpython3.5m.so.1.0)
                                                       #25 0x00007f1ef1e55d44 n/a (libpython3.5m.so.1.0)
                                                       #26 0x00007f1ef1e3f2d7 PyObject_Call (libpython3.5m.so.1.0)
                                                       #27 0x00007f1ef1e9bdd0 n/a (libpython3.5m.so.1.0)
                                                       #28 0x00007f1ef1e9a135 n/a (libpython3.5m.so.1.0)
                                                       #29 0x00007f1ef1e3f2d7 PyObject_Call (libpython3.5m.so.1.0)
                                                       #30 0x00007f1ef1ef9aeb PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                                       #31 0x00007f1ef1eff2c3 n/a (libpython3.5m.so.1.0)
                                                       #32 0x00007f1ef1efbb0e PyEval_EvalFrameEx (libpython3.5m.so.1.0)
                                                       #33 0x00007f1ef1eff2c3 n/a (libpython3.5m.so.1.0)
                                                       #34 0x00007f1ef1eff3a3 PyEval_EvalCodeEx (libpython3.5m.so.1.0)
                                                       #35 0x00007f1ef1eff3cb PyEval_EvalCode (libpython3.5m.so.1.0)
                                                       #36 0x00007f1ef1f1e364 n/a (libpython3.5m.so.1.0)
                                                       #37 0x00007f1ef1f208e5 PyRun_FileExFlags (libpython3.5m.so.1.0)
                                                       #38 0x00007f1ef1f20a55 PyRun_SimpleFileExFlags (libpython3.5m.so.1.0)
                                                       #39 0x00007f1ef1f3769c Py_Main (libpython3.5m.so.1.0)
                                                       #40 0x0000000000400af0 main (python3.5)
                                                       #41 0x00007f1ef183c291 __libc_start_main (libc.so.6)
                                                       #42 0x0000000000400b99 _start (python3.5)

                                                       Stack trace of thread 779:
                                                       #0  0x00007f1ef18fb48d poll (libc.so.6)
                                                       #1  0x00007f1eefe41066 n/a (libglib-2.0.so.0)
                                                       #2  0x00007f1eefe4117c g_main_context_iteration (libglib-2.0.so.0)
                                                       #3  0x00007f1eefe411c1 n/a (libglib-2.0.so.0)
                                                       #4  0x00007f1eefe67345 n/a (libglib-2.0.so.0)
                                                       #5  0x00007f1ef1bc1454 start_thread (libpthread.so.0)
                                                       #6  0x00007f1ef19047df __clone (libc.so.6)
Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Service hold-off time over, scheduling restart.
Sep 07 20:38:42 Alex-PC systemd[679]: Stopped Redshift display colour temperature adjustment (GUI).
Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Start request repeated too quickly.
Sep 07 20:38:42 Alex-PC systemd[679]: Failed to start Redshift display colour temperature adjustment (GUI).
Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Unit entered failed state.
Sep 07 20:38:42 Alex-PC systemd[679]: redshift-gtk.service: Failed with result 'start-limit-hit'.
ke-kx commented 7 years ago

I still see the same behavior on my Arch Linux. I mean it's barely noticable because systemd restarts the service quite quickly, but something is wrong for sure ;) I have attached a stacktrace.

    Jul 13 23:12:08 tesuji redshift-gtk[1158]: Unable to init server: Could not connect: Connection refused
    Jul 13 23:12:08 tesuji redshift-gtk[1158]: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
    Jul 13 23:12:08 tesuji systemd[1116]: redshift-gtk.service: Main process exited, code=dumped, status=11/SEGV
    Jul 13 23:12:08 tesuji systemd[1116]: redshift-gtk.service: Unit entered failed state.
    Jul 13 23:12:08 tesuji systemd[1116]: redshift-gtk.service: Failed with result 'core-dump'.
    Jul 13 23:12:09 tesuji systemd-coredump[1175]: Process 1158 (redshift-gtk) of user 1000 dumped core.

                                           Stack trace of thread 1158:
                                           #0  0x00007fc6c72064a9 n/a (libgtk-3.so.0)
                                           #1  0x00007fc6c70a0d08 n/a (libgtk-3.so.0)
                                           #2  0x00007fc6c70b67e3 n/a (libgtk-3.so.0)
                                           #3  0x00007fc6c70a206c n/a (libgtk-3.so.0)
                                           #4  0x00007fc6c70b671c n/a (libgtk-3.so.0)
                                           #5  0x00007fc6c70b6775 n/a (libgtk-3.so.0)
                                           #6  0x00007fc6c70a29e2 n/a (libgtk-3.so.0)
                                           #7  0x00007fc6cf7c4f58 g_type_create_instance (libgobject-2.0.so.0)
                                           #8  0x00007fc6cf7a6028 n/a (libgobject-2.0.so.0)
                                           #9  0x00007fc6cf7a7a55 g_object_newv (libgobject-2.0.so.0)
                                           #10 0x00007fc6cf7a8214 g_object_new (libgobject-2.0.so.0)
                                           #11 0x00007fc6c70beafa n/a (libgtk-3.so.0)
                                           #12 0x00007fc6c729a708 n/a (libgtk-3.so.0)
                                           #13 0x00007fc6cf7c4f58 g_type_create_instance (libgobject-2.0.so.0)
                                           #14 0x00007fc6cf7a6028 n/a (libgobject-2.0.so.0)
                                           #15 0x00007fc6cf7a7a55 g_object_newv (libgobject-2.0.so.0)
                                           #16 0x00007fc6cfc6d91c n/a (_gi.cpython-36m-x86_64-linux-gnu.so)
                                           #17 0x00007fc6cfc748c1 n/a (_gi.cpython-36m-x86_64-linux-gnu.so)
                                           #18 0x00007fc6d124e7de n/a (libpython3.6m.so.1.0)
                                           #19 0x00007fc6d125614c _PyObject_FastCallDict (libpython3.6m.so.1.0)
                                           #20 0x00007fc6d11eeb56 n/a (libpython3.6m.so.1.0)
                                           #21 0x00007fc6d11a33c7 _PyEval_EvalFrameDefault (libpython3.6m.so.1.0)
                                           #22 0x00007fc6d11edf6a _PyFunction_FastCallDict (libpython3.6m.so.1.0)
                                           #23 0x00007fc6d125634e _PyObject_FastCallDict (libpython3.6m.so.1.0)
                                           #24 0x00007fc6d12570b2 _PyObject_Call_Prepend (libpython3.6m.so.1.0)
                                           #25 0x00007fc6d125717b PyObject_Call (libpython3.6m.so.1.0)
                                           #26 0x00007fc6d11f5839 n/a (libpython3.6m.so.1.0)
                                           #27 0x00007fc6d124e7de n/a (libpython3.6m.so.1.0)
                                           #28 0x00007fc6d125614c _PyObject_FastCallDict (libpython3.6m.so.1.0)
                                           #29 0x00007fc6d11eeb56 n/a (libpython3.6m.so.1.0)
                                           #30 0x00007fc6d11a33c7 _PyEval_EvalFrameDefault (libpython3.6m.so.1.0)
                                           #31 0x00007fc6d114524b n/a (libpython3.6m.so.1.0)
                                           #32 0x00007fc6d11ee75a n/a (libpython3.6m.so.1.0)
                                           #33 0x00007fc6d11eeac3 n/a (libpython3.6m.so.1.0)
                                           #34 0x00007fc6d11a33c7 _PyEval_EvalFrameDefault (libpython3.6m.so.1.0)
                                           #35 0x00007fc6d11eef17 PyEval_EvalCodeEx (libpython3.6m.so.1.0)
                                           #36 0x00007fc6d11a30ab PyEval_EvalCode (libpython3.6m.so.1.0)
                                           #37 0x00007fc6d12880d2 n/a (libpython3.6m.so.1.0)
                                           #38 0x00007fc6d128a6fd PyRun_FileExFlags (libpython3.6m.so.1.0)
                                           #39 0x00007fc6d128a8e7 PyRun_SimpleFileExFlags (libpython3.6m.so.1.0)
                                           #40 0x00007fc6d127e063 Py_Main (libpython3.6m.so.1.0)
                                           #41 0x0000000000400a5d main (python3.6)
                                           #42 0x00007fc6d161a43a __libc_start_main (libc.so.6)
                                           #43 0x0000000000400b9a _start (python3.6)

                                           Stack trace of thread 1172:
                                           #0  0x00007fc6d16e2349 syscall (libc.so.6)
                                           #1  0x00007fc6cf50dc7a g_cond_wait_until (libglib-2.0.so.0)
                                           #2  0x00007fc6cf49d121 n/a (libglib-2.0.so.0)
                                           #3  0x00007fc6cf4f0464 n/a (libglib-2.0.so.0)
                                           #4  0x00007fc6cf4efac5 n/a (libglib-2.0.so.0)
                                           #5  0x00007fc6d19a6297 start_thread (libpthread.so.0)
                                           #6  0x00007fc6d16e71ef __clone (libc.so.6)

                                           Stack trace of thread 1171:
                                           #0  0x00007fc6d16dd24d poll (libc.so.6)
                                           #1  0x00007fc6cf4c8bf9 n/a (libglib-2.0.so.0)
                                           #2  0x00007fc6cf4c8d0c g_main_context_iteration (libglib-2.0.so.0)
                                           #3  0x00007fc6cf4c8d51 n/a (libglib-2.0.so.0)
                                           #4  0x00007fc6cf4efac5 n/a (libglib-2.0.so.0)
                                           #5  0x00007fc6d19a6297 start_thread (libpthread.so.0)
                                           #6  0x00007fc6d16e71ef __clone (libc.so.6)

                                           Stack trace of thread 1173:
                                           #0  0x00007fc6d16dd24d poll (libc.so.6)
                                           #1  0x00007fc6cf4c8bf9 n/a (libglib-2.0.so.0)
                                           #2  0x00007fc6cf4c8f92 g_main_loop_run (libglib-2.0.so.0)
                                           #3  0x00007fc6ceda7426 n/a (libgio-2.0.so.0)
                                           #4  0x00007fc6cf4efac5 n/a (libglib-2.0.so.0)
                                           #5  0x00007fc6d19a6297 start_thread (libpthread.so.0)
                                           #6  0x00007fc6d16e71ef __clone (libc.so.6)

`

andreyv commented 7 years ago

The crash seems to happen because the DISPLAY environment variable is initially undefined in the user manager environment when redshift-gtk.service is started after login.

systemd uses a special xinitrc.dscript to import DISPLAY later on: https://github.com/systemd/systemd/blob/master/xorg/50-systemd-user.sh, but redshift-gtk.service doesn't wait for that.

There is a special systemd target named graphical-session.target (documentation). Looks like redshift-gtk.service should have a relation to this target. According to documentation, this code in redshift-gtk.service:

[Install]
WantedBy=default.target

should be changed to

[Install]
WantedBy=graphical-session.target

However, there needs to be support for graphical-session.target in the desktop environment. If the DE doesn't know about this target, the target and redshift-gtk.service won't be activated at all. For example, on my Xfce desktop:

> systemctl --user status graphical-session.target
● graphical-session.target - Current graphical user session
   Loaded: loaded (/usr/lib/systemd/user/graphical-session.target; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd.special(7)

In such cases it may be possible to create a custom target unit that BindsTo=graphical-session.target and then start this unit manually in the Session and Startup dialog.

mwstobo commented 7 years ago

Another possible solution might be to keep redshift in the disabled state when DISPLAY is not set. Does that sound reasonable? That won't require any special support or a reliance on systemd functionality.

andreyv commented 6 years ago

I updated my comment above to include a clarified description of the problem and intended solution.

Current workarounds are to either use redshift.service instead or to start redshift-gtk manually using the startup facilities of the desktop environment.

@mwstobo If I understood what you meant, the environment is inherited from the user manager when the unit is started, and doesn't change later.

fictionic commented 4 years ago

I'm still running into this. Are there plans to offer a better fix?

*Edit: Actually I think I might be running into something else. I get this same core dump even when starting redshift-gtk manually via systemctl.

AlexWayfer commented 4 years ago

Are there plans to offer a better fix?

Night mode in GNOME 3 with GDM works pretty well. With LightDM or older versions of GNOME there were problems (I'm not sure what was the root).

fictionic commented 4 years ago

That's not super helpful, as I don't want to use GNOME. I want to use redshift.

fictionic commented 4 years ago

@andreyv Do you think this is still caused by the DISPLAY issue? I can run redshift-gtk with no issue by itself, it's only when it's invoked by systemd

andreyv commented 4 years ago

Exactly — see https://github.com/jonls/redshift/issues/265#issuecomment-338245748 for explanation.

fictionic commented 4 years ago

That only explains why it doesn't work when auto-started by systemd. It doesn't explain why it doesn't work when manually running systemctl --user start redshift-gtk. Do you know what might cause that?

andreyv commented 4 years ago

That works for me. Probably in your case DISPLAY isn't imported at all — check if the 50-systemd-user.sh script is really run. Also check systemctl --user show-environment.

fictionic commented 4 years ago

Aha! Looks like that script is not being run somehow. Do you what might cause this? I'm starting X with just a regular startx.

andreyv commented 4 years ago

Your xinitrc should include xinitrc.d/*.sh files. Your desktop environment probably has its own version of xinitrc. See xinit(1).

fictionic commented 4 years ago

Thank you!!!

Powersource commented 8 months ago

just had a crash like this

Powersource commented 8 months ago
mar 04 17:09:34 me-lap systemd-coredump[1022]: Process 993 (redshift-gtk) of user 1000 dumped core.

                                               Stack trace of thread 993:
                                               #0  0x00007617e0518194 n/a (libgtk-3.so.0 + 0x118194)
                                               #1  0x00007617e05406e6 n/a (libgtk-3.so.0 + 0x1406e6)
                                               #2  0x00007617e0523665 n/a (libgtk-3.so.0 + 0x123665)
                                               #3  0x00007617e206d0e3 g_type_create_instance (libgobject-2.0.so.0 + 0x3f0e3)
                                               #4  0x00007617e2052d91 n/a (libgobject-2.0.so.0 + 0x24d91)
                                               #5  0x00007617e2054387 g_object_new_with_properties (libgobject-2.0.so.0 + 0x26387)
                                               #6  0x00007617e20552ca g_object_new (libgobject-2.0.so.0 + 0x272ca)
                                               #7  0x00007617e07435f9 n/a (libgtk-3.so.0 + 0x3435f9)
                                               #8  0x00007617e206d0e3 g_type_create_instance (libgobject-2.0.so.0 + 0x3f0e3)
                                               #9  0x00007617e2052d91 n/a (libgobject-2.0.so.0 + 0x24d91)
                                               #10 0x00007617e2054387 g_object_new_with_properties (libgobject-2.0.so.0 + 0x26387)
                                               #11 0x00007617e29f17d1 n/a (_gi.cpython-311-x86_64-linux-gnu.so + 0x137d1)
                                               #12 0x00007617e2fdc093 _PyObject_MakeTpCall (libpython3.11.so.1.0 + 0x1dc093)
                                               #13 0x00007617e2fe76e1 _PyEval_EvalFrameDefault (libpython3.11.so.1.0 + 0x1e76e1)
                                               #14 0x00007617e300e8c0 _PyFunction_Vectorcall (libpython3.11.so.1.0 + 0x20e8c0)
                                               #15 0x00007617e301613e n/a (libpython3.11.so.1.0 + 0x21613e)
                                               #16 0x00007617e2fdc093 _PyObject_MakeTpCall (libpython3.11.so.1.0 + 0x1dc093)
                                               #17 0x00007617e2fe76e1 _PyEval_EvalFrameDefault (libpython3.11.so.1.0 + 0x1e76e1)
                                               #18 0x00007617e30a0954 n/a (libpython3.11.so.1.0 + 0x2a0954)
                                               #19 0x00007617e30a033c PyEval_EvalCode (libpython3.11.so.1.0 + 0x2a033c)
                                               #20 0x00007617e30bde43 n/a (libpython3.11.so.1.0 + 0x2bde43)
                                               #21 0x00007617e30b9f7a n/a (libpython3.11.so.1.0 + 0x2b9f7a)
                                               #22 0x00007617e30d04b3 n/a (libpython3.11.so.1.0 + 0x2d04b3)
                                               #23 0x00007617e30cfe25 _PyRun_SimpleFileObject (libpython3.11.so.1.0 + 0x2cfe25)
                                               #24 0x00007617e30ce728 _PyRun_AnyFileObject (libpython3.11.so.1.0 + 0x2ce728)
                                               #25 0x00007617e30c91d8 Py_RunMain (libpython3.11.so.1.0 + 0x2c91d8)
                                               #26 0x00007617e30940db Py_BytesMain (libpython3.11.so.1.0 + 0x2940db)
                                               #27 0x00007617e2c43cd0 n/a (libc.so.6 + 0x25cd0)
                                               #28 0x00007617e2c43d8a __libc_start_main (libc.so.6 + 0x25d8a)
                                               #29 0x0000600ad13df045 _start (python3.11 + 0x1045)

                                               Stack trace of thread 1017:
                                               #0  0x00007617e2d2488d syscall (libc.so.6 + 0x10688d)
                                               #1  0x00007617e2167337 g_cond_wait (libglib-2.0.so.0 + 0xb3337)
                                               #2  0x00007617e20d91b4 n/a (libglib-2.0.so.0 + 0x251b4)
                                               #3  0x00007617e2141ace n/a (libglib-2.0.so.0 + 0x8dace)
                                               #4  0x00007617e213fa45 n/a (libglib-2.0.so.0 + 0x8ba45)
                                               #5  0x00007617e2ca955a n/a (libc.so.6 + 0x8b55a)
                                               #6  0x00007617e2d26a3c n/a (libc.so.6 + 0x108a3c)

                                               Stack trace of thread 1019:
                                               #0  0x00007617e2d2488d syscall (libc.so.6 + 0x10688d)
                                               #1  0x00007617e2167d13 g_cond_wait_until (libglib-2.0.so.0 + 0xb3d13)
                                               #2  0x00007617e20d9185 n/a (libglib-2.0.so.0 + 0x25185)
                                               #3  0x00007617e214257b n/a (libglib-2.0.so.0 + 0x8e57b)
                                               #4  0x00007617e213fa45 n/a (libglib-2.0.so.0 + 0x8ba45)
                                               #5  0x00007617e2ca955a n/a (libc.so.6 + 0x8b55a)
                                               #6  0x00007617e2d26a3c n/a (libc.so.6 + 0x108a3c)

                                               Stack trace of thread 1016:
                                               #0  0x00007617e2d190bf __poll (libc.so.6 + 0xfb0bf)
                                               #1  0x00007617e216c2f6 n/a (libglib-2.0.so.0 + 0xb82f6)
                                               #2  0x00007617e210c162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                                               #3  0x00007617e210c1b2 n/a (libglib-2.0.so.0 + 0x581b2)
                                               #4  0x00007617e213fa45 n/a (libglib-2.0.so.0 + 0x8ba45)
                                               #5  0x00007617e2ca955a n/a (libc.so.6 + 0x8b55a)
                                               #6  0x00007617e2d26a3c n/a (libc.so.6 + 0x108a3c)

                                               Stack trace of thread 1018:
                                               #0  0x00007617e2d2488d syscall (libc.so.6 + 0x10688d)
                                               #1  0x00007617e2167d13 g_cond_wait_until (libglib-2.0.so.0 + 0xb3d13)
                                               #2  0x00007617e20d9185 n/a (libglib-2.0.so.0 + 0x25185)
                                               #3  0x00007617e214257b n/a (libglib-2.0.so.0 + 0x8e57b)
                                               #4  0x00007617e213fa45 n/a (libglib-2.0.so.0 + 0x8ba45)
                                               #5  0x00007617e2ca955a n/a (libc.so.6 + 0x8b55a)
                                               #6  0x00007617e2d26a3c n/a (libc.so.6 + 0x108a3c)

                                               Stack trace of thread 1020:
                                               #0  0x00007617e2d190bf __poll (libc.so.6 + 0xfb0bf)
                                               #1  0x00007617e216c2f6 n/a (libglib-2.0.so.0 + 0xb82f6)
                                               #2  0x00007617e210eb97 g_main_loop_run (libglib-2.0.so.0 + 0x5ab97)
                                               #3  0x00007617e1ecc19c n/a (libgio-2.0.so.0 + 0x11219c)
                                               #4  0x00007617e213fa45 n/a (libglib-2.0.so.0 + 0x8ba45)
                                               #5  0x00007617e2ca955a n/a (libc.so.6 + 0x8b55a)
                                               #6  0x00007617e2d26a3c n/a (libc.so.6 + 0x108a3c)
                                               ELF object binary architecture: AMD x86-64