Bug 19752 - [FR] сделать возможным доступ к папкам с количеством файлов > 1024
: [FR] сделать возможным доступ к папкам с количеством файлов > 1024
Status: CLOSED FIXED
: Branch 5.0
(All bugs in Branch 5.0/libgphoto2)
: unspecified
: all Linux
: P3 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2009-04-24 12:26 by
Modified: 2009-05-10 13:37 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-04-24 12:26:10
В новых версиях 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 From 2009-04-25 06:27:58 -------
А у кого-нибудь из вендоров это сделано?
Если да, дайте, пожалуйста, линк.
Если нет, лично я не вижу смысла бежать впереди апстрима, перетаскивая
фикс из нестабильной ветки разработки в стабильную, поскольку это
потенциальный источник проблем.
Повесил стикер на монитор, подумаю на досуге.
------- Comment #2 From 2009-04-25 11:17:02 -------
(В ответ на комментарий №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 From 2009-04-25 11:22:23 -------
Если я правильно понял код, то 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 From 2009-05-10 12:29:51 -------
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 From 2009-05-10 13:37:05 -------
А также 2.4.5-alt1.M50.1 для бранча 5.0.