Bug 487824

Summary: Error "I/O busy" ("E/S en cours" in French) the second time a Kamera is tested with systemsettings
Product: [Applications] Kamera Reporter: Pascal COMBES <pascom>
Component: GeneralAssignee: kdelibs bugs <kdelibs-bugs-null>
Status: RESOLVED FIXED    
Severity: major    
Priority: NOR    
Version First Reported In: 24.02.2   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Pascal COMBES 2024-05-31 07:28:04 UTC
SUMMARY
At first the camera is accessible without any issue and all the buttons in kcm_kamera work. But, if I close systemsettings and open it again, I get error "I/O busy" ("E/S en cours" in French). I need to restart the physical camera so that I can access it again.

STEPS TO REPRODUCE
1. Switch camera on
2. Open kcm_kamera in systemsettings 
3. Test camera 
4. Close systemsettings
5. Open kcm_kamera in systemsettings 
6. Test camera

OBSERVED RESULT
At step 3. test works, but at step 6., it does not and we get error "I/O busy" ("E/S en cours" in French)

EXPECTED RESULT
Test should work everytime

SOFTWARE/OS VERSIONS
Distribution: openSUSE Tumbleweed 20240517
Linux: 6.8.9-1-default (64-bit)
KDE Plasma Version: 6.0.4
KDE Frameworks Version: 6.2.0
Qt Version: 6.7.0
gPhoto: 2.5.28

ADDITIONAL INFORMATION
Camera: Nikon Coolpix S5100
Comment 1 Bug Janitor Service 2024-05-31 09:11:23 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/kamera/-/merge_requests/18
Comment 2 Albert Astals Cid 2025-01-14 21:28:55 UTC
Git commit 267831e39c65cf7eb20bf12a78277cea6cf000ec by Albert Astals Cid, on behalf of Pascal COMBES.
Committed on 14/01/2025 at 21:28.
Pushed by aacid into branch 'master'.

Stop Kamera KCM holding the camera device

Kamera did not properly close and delete the camera devices abstractions

However, the camera device will be held by Kamera KCM as long as it is running and other applications cannot access the camera device while Kamera KCM is open. We could call `gp_camera_exit` after every operation, but then camera access takes some time (~ 10s) for every operation (not only the first one).

M  +1    -0    kcontrol/kamera.cpp
M  +17   -13   kcontrol/kameradevice.cpp
M  +0    -1    kcontrol/kameradevice.h

https://invent.kde.org/graphics/kamera/-/commit/267831e39c65cf7eb20bf12a78277cea6cf000ec