<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>60926</bug_id>
          
          <creation_ts>2026-10-12 19:07:41 +0300</creation_ts>
          <short_desc>gvfs-tests: test_mount_api (GPhoto) всегда падает: umockdev-фикстуры из эпохи libusb0 несовместимы с libusb1-портом libgphoto2 (≥ 2.5.28)</short_desc>
          <delta_ts>2026-10-12 19:07:41 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>gvfs</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=44191</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Artem Varaksa">varaksaaa</reporter>
          <assigned_to name="Yuri N. Sedunov">aris</assigned_to>
          <cc>aris</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301861</commentid>
    <comment_count>0</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2026-10-12 19:07:41 +0300</bug_when>
    <thetext>Во всех ветках (p10, p11, sisyphus), в пользовательском и root-режимах, стабильно:

```
FAIL: test_mount_api (__main__.GPhoto)
gphoto2:// mount with Gio API
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/usr/libexec/gvfs/installed-tests/gvfs/gvfs-test&quot;, line 1749, in test_mount_api
    self.assertEqual(self.mount_api(gfile_mount), True)
AssertionError: GLib.Error(&apos;Error initializing camera: -7: I/O problem&apos;, &apos;g-io-error-quark&apos;, 0) != True
```

(номер строки зависит от версии gvfs: 1739 в 1.48.2, 1742 в 1.57.2, 1749 в 1.58.5/1.62.0)

В логе демона gvfsd-gphoto2:

```
gphoto2:   gphoto2_port=&apos;usb:001,015&apos;
gphoto2: send_reply(...), failed=1 (Error initializing camera: -7: I/O problem)
```

## Причина

- Тест эмулирует камеру Canon PowerShot через umockdev, используя фикстуры `test/files/powershot.umockdev` (добавлены в gvfs 1.18.0-alt1, 2013) и `test/files/powershot.ioctl` (gvfs 1.20.0-alt1, 2014).
- Фикстуры записаны в эпоху старого libusb0-порта libgphoto2 и с тех пор не обновлялись: во всех проверяемых версиях файлы побайтово идентичны (md5 `5099fb4e1c0bd4997c471753ea04eed1` и `22552dd730b0bcfd6efc97f9f5fdd0a3`), и запись содержит **только bulk-PTP-обмен** (эндпоинты 0x02 OUT / 0x81 IN), interrupt-трафика в ней нет.
- Начиная с gphoto2 2.5.28 (2022) libgphoto2 использует libusb1-порт, который при открытии порта **неусловно** отправляет асинхронный 256-байтовый interrupt URB, если в дескрипторе устройства объявлен interrupt-эндпоинт (у эмулируемого устройства объявлен EP 0x83).
- Этот URB отсутствует в записи → воспроизведение umockdev не находит совпадения и возвращает ENOTTY на `USBDEVFS_SUBMITURB` → `GP_ERROR_IO (-7)` → монтирование не начинается. Ни один PTP-запрос до этого момента не отправляется (в логах демона после `gphoto2_port=&apos;usb:001,015&apos;` PTP-трафика нет).

Иными словами, тест неработоспособен с момента попадания libgphoto2 2.5.28 в дистрибутив; это известный с 2022 года сбой (баг 44191, sisyphus, gvfs 1.50.2-alt1) — воспроизводится без изменений и в 2026 на всех ветках.

## Предложение (любой из вариантов)

1. Перезаписать umockdev-фикстуры под текущий libusb1-порт libgphoto2 (нужна реальная PTP-over-USB-камера или её эмулятор), либо
2. Руками дополнить существующую запись отсутствующим interrupt URB (и прочим трафиком при открытии порта, если он есть), либо
3. Пропустить тест в spec gvfs для затронутых веток (test-only патч), пока фикстуры не будут обновлены.

## Шаги воспроизведения

1. Установить `gvfs-tests` (фикстуры самодостаточны, внешних сервисов не требуется)
2. Запустить `/usr/libexec/gvfs/installed-tests/gvfs/gvfs-test`
3. `test_mount_api (GPhoto)` падает с `Error initializing camera: -7: I/O problem`

## Версии

- gvfs: p10 1.48.2-alt1, p11 1.57.2-alt1 (задание 435928: 1.58.5-alt1), sisyphus 1.62.0-alt1
- libgphoto2: p10 2.5.31-alt1, p11 2.5.33-alt0.p11.1, sisyphus 2.5.34-alt1
- libumockdev: p10 0.17.13-alt1, p11 0.19.3-alt1, sisyphus 0.19.9-alt1
- libusb: p10 1.0.26-alt2, p11 1.0.30-alt1, sisyphus 1.0.30-alt1</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>