Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, столкнулся вот с такой проблемой: Клиент и база на одной машине Win2000 сп4 рус. Постгрес: PostgreSQL 8.1.4 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special) Есть приложение (несколько нитей, в каждой свой коннект), каждая нитка отсылает одинаковые запросы в базу (libpq через PQprepare/PQexecPrepared и PQexec). Запросы повторяются, всего их 19 штук и крутятся по кругу в каждой нитке. Так вот если количество нитей > 1, то время от времени возникает такая ошибка: could not open relation x/x/x: Invalid argument (с разными значениями вместо х). Причем может вылезти на любом запросе и не важно на PQexec или PQprepare, в качестве релейшена в ошибке выступает либо таблица из запроса, либо ее индекс, работает, работает а потом хоп - ошибка :( потом опять все ок и т.д. - рандом полный :( Если нитка одна, то все ок. Получив полную информацию об ошибке, оказалось, что это ф-ия mdopen, строка 364, смотрю туда: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 15:54 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
SUKER...Получается что засада в синхронизации запросов постгресом? У кого-ть есть соображения на это счет? Или надо синхронизировать нити на момент не допускания посылки одновременных запросов (если так, то как он вообще работает тогда :))???? на каждый коннект к постгрессу создаёться отдельный процесс(форточки) где и обрабатываються Ваши запросы. Думаю, что Вы юзаете ОДИН коннекшен к базе - отсюда и траблы... Либо в каждом потоке открывайте по коннекшенну...Либо обеспечьте ОДИН коннект в ОДНОЙ нитке и гоните всё через неё последовательно... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:33 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
kolobok0на каждый коннект к постгрессу создаёться отдельный процесс(форточки) где и обрабатываються Ваши запросы. Думаю, что Вы юзаете ОДИН коннекшен к базе - отсюда и траблы... Либо в каждом потоке открывайте по коннекшенну...Либо обеспечьте ОДИН коннект в ОДНОЙ нитке и гоните всё через неё последовательно... Спасибо, но я же написал: SUKER(несколько нитей, в каждой свой коннект и это 100%. Дальнейшие изыскания проблемы привели к следующим результатам: 1) Если конектиться к удаленному серверу: линух + постгрес 7.4, то все работает на ура - без ошибок. 2) Если коннектится к удаленному серверу: виндовсХП сп2 + постгрес 8.1.4, то тоже самое что и у меня локально - периодически возникают вышеописанные ошибки :( Есть еще мнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:56 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
SUKERЕсть еще мнения? По идее постгресу должно быть всё равно, из потоков к нему обращаются или из отдельных приложений. Можно попробовать запустить все эти потоки как отдельные приложения, чтобы отделить потенциально возможное влияние многопоточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 17:19 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
Andrew SagulinПо идее постгресу должно быть всё равно, из потоков к нему обращаются или из отдельных приложений. Можно попробовать запустить все эти потоки как отдельные приложения, чтобы отделить потенциально возможное влияние многопоточности. Я думаю ему и есть все равно - ошибка будет и в том и в том случае, вот только времени рыть в этом направлении у меня нет :( Боюсь, что осталось выяснить: это глюк восьмерки как таковой (сильно сомневаюсь), или же это глюк 8-ки под виндой.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 17:37 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
Если это бага PG 8 под Windows, связанная с race conditions, то она должна была бы выплывать при любой многопользовательской работе, а здесь этого не слышно (мало юзают 8-ку под Windows?). Нет, а всё-таки, сложно скомпилировать Ваше приложение для работы с одним потоком и запустить пару десятков экземпляров приложения? А то, если это стопроцентно баг PG, можно отослать багрепорт разработчкам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 08:36 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
Andrew SagulinЕсли это бага PG 8 под Windows, связанная с race conditions, то она должна была бы выплывать при любой многопользовательской работе, а здесь этого не слышно (мало юзают 8-ку под Windows?). Нет, а всё-таки, сложно скомпилировать Ваше приложение для работы с одним потоком и запустить пару десятков экземпляров приложения? А то, если это стопроцентно баг PG, можно отослать багрепорт разработчкам... Скопилял - достаточно двух приложений :) В нете подобные сообщения встечаются, но на них либо не отвечают, либо у одного, например, решилось исключением папки постгреса из сканируемых антивирусом (у меня не помогло)... Видимо действительно мало у кого сервер на винде + чтобы одинаковые запросы часто одновременно приходили :) Ставлю федору на виртул машину, пихну туда восьмерку и проверю... НО судя по сорсам данная область не сильно изминилась по сравнению с 7.4 так что думаю дело именно в винде :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 09:37 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
SUKER...Скопилял - достаточно двух приложений :) В нете подобные сообщения встечаются, но на них либо не отвечают, либо у одного, например, решилось исключением папки постгреса из сканируемых антивирусом (у меня не помогло)... Видимо действительно мало у кого сервер на винде + чтобы одинаковые запросы часто одновременно приходили :) Ставлю федору на виртул машину, пихну туда восьмерку и проверю... НО судя по сорсам данная область не сильно изминилась по сравнению с 7.4 так что думаю дело именно в винде :( 8 сервак на форточках... клиенты коннектяться...гоняли более двух... монстроподобный функционал в виде хранимок на си плас плас (рекурсии, маленькая кучка таблиц, различные типы, мэнеджэт-анмэнеджэт)..описанных проблем не обнаружено... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 13:31 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
kolobok08 сервак на форточках... клиенты коннектяться...гоняли более двух... монстроподобный функционал в виде хранимок на си плас плас (рекурсии, маленькая кучка таблиц, различные типы, мэнеджэт-анмэнеджэт)..описанных проблем не обнаружено... (круглый) Хм, ну если бы я для тестов в нитках запросы в цикл не загнал, то тоже может и не заметил бы (кстати вспомнил что подомная ошика уже один раз проскакивала на другом приложении стороннего разработчика, но тогда я на нее не обратил внимания). Ща уже фидора поставилась - протестю :) А так впринципе можно будет написать тестовую программульку чтобы запускала две нитки и крутила там запрос в цикле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 13:40 |
|
||
|
could not open relation x/x/x: Invalid argument
|
|||
|---|---|---|---|
|
#18+
Протестил на федоре: с PostgreSQL 8.1.3 on i386-redhat-linux-gnu, compiled by GCC i386-redhat-linux-gcc (GCC) 4.1.0 20060210 (Red Hat 4.1.0-0.24) опять же никаких проблем.... Если будет время, накатаю быденький тест... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34000751&tid=2006081]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 497ms |

| 0 / 0 |
