Bug 19752 - [FR] сделать возможным доступ к папкам с количеством файлов > 1024
Summary: [FR] сделать возможным доступ к папкам с количеством файлов > 1024
Status: CLOSED FIXED
Alias: None
Product: Branch 5.0
Classification: Distributions
Component: libgphoto2 (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 enhancement
Assignee: Dmitriy Khanzhin
QA Contact: qa-5.0@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-24 12:26 MSD by Alex Moskalenko
Modified: 2009-05-10 13:37 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Moskalenko 2009-04-24 12:26:10 MSD
В новых версиях libgphoto2 в файле libgphoto2/gphoto2-list.h жестко прописано максимальное количество файлов в папке как #define MAX_ENTRIES 1024. Из-за этого ограничения получить доступ к папкам, в которых больше чем 1024 файла, невозможно - выдается ошибка

ptp2(2): file_list_func(/store_00010001/DCIM/100CANON)
gphoto2-list(0): gp_list_append: Tried to add more than 1024 entries to the list, reporting error.
gphoto2-camera(2): Operation failed!
 *** Error (-8: 'Fixed limit exceeded') ***

При исправлении этого числа на 8192 (или 16384, к примеру) и пересборке библиотеки количество доступных файлов значительно увеличивается. Хотелось бы увидеть это изменение в наших сборках, так как более чем 1024 файла в папке при современных объемах карт памяти скорее правило, чем исключение.

Обсуждение на sf.net
http://sourceforge.net/tracker/index.php?func=detail&aid=1515453&group_id=8874&atid=108874
Обсуждение на launchpad.net
https://bugs.launchpad.net/ubuntu/+source/libgphoto2/+bug/144585
Comment 1 Dmitriy Khanzhin 2009-04-25 06:27:58 MSD
А у кого-нибудь из вендоров это сделано?
Если да, дайте, пожалуйста, линк.
Если нет, лично я не вижу смысла бежать впереди апстрима, перетаскивая
фикс из нестабильной ветки разработки в стабильную, поскольку это
потенциальный источник проблем.
Повесил стикер на монитор, подумаю на досуге.
Comment 2 Alex Moskalenko 2009-04-25 11:17:02 MSD
(В ответ на комментарий №1)
> А у кого-нибудь из вендоров это сделано?
> Если да, дайте, пожалуйста, линк.
Да похоже у многих сделано

В Федоре
https://bugzilla.redhat.com/show_bug.cgi?id=454245

В Debian
http://patch-tracking.debian.net/package/libgphoto2/2.4.5-1
http://patch-tracking.debian.net/patch/series/view/libgphoto2/2.4.1-3/70_increase_max_entries

В Ubuntu
https://launchpad.net/ubuntu/hardy/+source/libgphoto2/2.4.0-8ubuntu1
Comment 3 Alex Moskalenko 2009-04-25 11:22:23 MSD
Если я правильно понял код, то MAX_ENTRIES используется в двух местах

1. Определение структуры CameraList
struct _CameraList {
<------>int  count;
<------>struct {
<------><------>char name  [MAX_LIST_STRING_LENGTH];
<------><------>char value [MAX_LIST_STRING_LENGTH];
<------>} entry [MAX_ENTRIES];
<------>int ref_count;
};
где он собственно определяет максимальное количество элементов структуры

2. В обработчике ошибок
 if (list->count == MAX_ENTRIES) {
  gp_log (GP_LOG_ERROR, "gphoto2-list", "gp_list_append: "
  "Tried to add more than %d entries to the list, reporting error.",
  MAX_ENTRIES);
  return (GP_ERROR_FIXED_LIMIT_EXCEEDED);
}

Поэтому, как мне кажется, от увеличения размера этой структуры никому хуже стать не должно.
Comment 4 Repository Robot 2009-05-10 12:29:51 MSD
gphoto2-2.4.5-alt2 -> sisyphus:

* Sun May 10 2009 Dmitriy Khanzhin <jinn@altlinux> 2.4.5-alt2

- increased max number of entries in the camera list (ALT #19752)
Comment 5 Dmitriy Khanzhin 2009-05-10 13:37:05 MSD
А также 2.4.5-alt1.M50.1 для бранча 5.0.