Recording the screencast does not work properly.
Affected version
- Fedora 40 Beta with updates-testing enabled.
- Affected GNOME Shell version: 46.0
- This issue appears in Wayland
- no extensions installed
Bug summary
When recording the screencast (entire screen, video, cursor on, although it does not seem to make a difference with other settings), the recording indicator appears in the upper right corner and starts to measure the time recorded, when an error message appears informing me about unsuccessful recording. No recorded video is in the Video/Screencasts directory, where it normally would appear. When I try again, the same error message appears after a while, but this time, the video file appears in the directory, however with part of the content from the previous attempt.
When I rebooted, the screencast did not fail for 30 seconds, so I stopped it with the Stop button on the indicator. After a while the same error message appeared and no video was placed in the directory. After that I tried to make a single screenshot which worked correctly and the picture correctly appeared in the Pictures/Screenshots directory and also the previous recording attempt video appeared in the Screencasts directory, although in was not complete.
It seems like a race condition of some kind, becase in journalctl, I can see to following messages:
dub 15 13:24:10 vseved gjs[4271]: JS LOG: :1.23: Error while stopping recorder: Unable to stop recorder while still starting
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element mp4mux1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element h264parse1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element queue3, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element openh264enc1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element queue2, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element videoconvert0, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element capsfilter1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element pipewiresrc1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element pipeline1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved gjs[4271]:
Trying to dispose element filesink1, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
dub 15 13:24:12 vseved systemd[2196]: dbus-:1.2-org.gnome.Shell.Screencast@1.service: Consumed 5.113s CPU time.
dub 15 13:24:12 vseved gnome-shell[2451]: D-Bus client with active sessions vanished
dub 15 13:24:58 vseved totem[4655]: grl_log_valist: assertion 'domain' failed
dub 15 13:24:58 vseved systemd[2196]: dbus-:1.2-org.gnome.Totem@0.service: Consumed 1min 14.344s CPU time.
dub 15 13:25:00 vseved systemd[2196]: Started dbus-:1.2-org.gnome.Totem@1.service.
dub 15 13:25:00 vseved gnome-shell[2451]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
dub 15 13:25:46 vseved totem[4841]: grl_log_valist: assertion 'domain' failed
dub 15 13:25:46 vseved systemd[2196]: dbus-:1.2-org.gnome.Totem@1.service: Consumed 31.993s CPU time.
dub 15 13:25:50 vseved systemd[2196]: Started dbus-:1.2-org.gnome.Totem@2.service.
dub 15 13:25:51 vseved gnome-shell[2451]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
dub 15 13:26:10 vseved systemd[2196]: Created slice background.slice - User Background Tasks Slice.
dub 15 13:26:10 vseved systemd[2196]: Starting systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and Directories...
dub 15 13:26:10 vseved totem[4952]: grl_log_valist: assertion 'domain' failed
dub 15 13:26:10 vseved systemd[2196]: Finished systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and Directories.
dub 15 13:26:10 vseved systemd[2196]: dbus-:1.2-org.gnome.Totem@2.service: Consumed 5.352s CPU time.
dub 15 13:26:30 vseved systemd[2196]: dbus-:1.2-org.gnome.Nautilus@1.service: Consumed 5.909s CPU time.
dub 15 13:27:07 vseved systemd[2196]: Started dbus-:1.2-org.gnome.Shell.Screencast@2.service.
dub 15 13:27:32 vseved gnome-shell[2451]: Screencast failed during phase STARTUP: Gio.IOErrorEnum: Časový limit vypršel
dub 15 13:27:37 vseved gnome-shell[2451]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
It looks like if the app missed the info that the screencasting has started and when it finishes, it does not know what to do with it.
Steps to reproduce
- Start recording the screencast and wait for the error message.
- Check the Video/Screencasts directory -> no file has appeared.
- Restart the recording and wait for the error message.
- Check the Video/Screencasts -> the previous recording (or part of it) appears.
- Restart the recording and try to stop it before the error message -> you still receive the error message.
- Make a screenshot -> this will be successful and also forces the previous recording to appear.
What happened
See the description.
What did you expect to happen
The session video recording works normally without issues.
Relevant logs, screenshots, screencasts etc.
See above.