Npgsql / C# / Android - chyba

34 views
Skip to first unread message

Emil J.

unread,
Sep 2, 2026, 8:04:09 AM (9 days ago) Sep 2
to PostgreSQL-cz
Dobrý deň

   neviem či mi tu bude niekto vedieť poradiť - ale skúsim sa spýtať - možno tu niekto využíva komponentu NPGSQL na pripojenie k PostgreSQL.

   Vytváram aplikáciu pre Android v C# (.NET9) a využívam Npgsql komponentu na pripojenie.
Aplikácia fungovala doteraz bez problémov. Využíva verziu 9.0.3 a updatol som to na 9.0.5. Potom som to skompiloval a dal do mobilného terminálu Zebra MC3400.
   Ako som to prekompiloval a dal do Zebry, tak to robí psie kusy, ktoré si neviem vysvetliť.
Zhruba 7 z 10 dotazov (SELECT) skončí s nejakou chybou (Exception) - zakaždým inou - viac obrázky v prílohe. Predtým bez problémov - žiadna chyba.
Keď skopírujem hocijaký dotaz, ktorý v aplikácii skončí s chybou do nejakého iného klienta (napr. PSQL) a skúsim spustiť - bez problémov (aj viac krát spustený).
   Spravil som test: 10x som spustil ten istý dotaz v aplikácii (kliknutím na tlačidlo v nej) a 3x to zbehlo bez chyby a 7x s chybou (Exception) a zakaždým s inou (viac obrázky). Dotaz je bez parametrov, takže SELECT vráti v podstate stále to isté (bežný čas trvania: 150 ms).
   Skúsil som vrátiť na verziu 9.0.3 - nepomohlo. Potom som skúsil 10.0.3 aj 8.0.9, ale výsledok je ten istý. Potom som sa vrátil k verzii aplikácie v ktorej to bolo ešte OK, ale po skompilovani to už nejde ani v tej. Mám tých Zebra čítačiek viac a v jednej ostali ešte tie verzie, ktoré doteraz chodili (s Npgsql v9.0.3) a tie fungujú bez problémov - žiadna chyba (po prekompilovaní už zrejme nebudú chodiť ani tie).
   Absolútne netuším čo sa stalo a prečo to z ničoho nič prestalo fungovať. Z tých náhodných chýb neviem nič vydedukovať. Hlavne keď to zakaždým zavolaním hlási niečo úplne iné a ešte keď to niekedy zbehne bez akejkoľvek chyby.

   Ak by mal niekto podobnú skúsenosť, alebo nejaký nápad budem rád za každé nasmerovanie.

Ďakujem,
Emil Jablonský

PS: na obrázkoch je záložka CHYBA a v nej je položka TEXT.
V nej sa zobrazuje exception message ktorý nastal (bez akejkoľvek mojej modifikácie).

2026-09-02-01.jpg
2026-09-02-04.jpg
2026-09-02-05.jpg
2026-09-02-02.jpg
2026-09-02-03.jpg
2026-09-02-07.jpg
2026-09-02-06.jpg
2026-09-02-08.jpg
2026-09-02-09.jpg

Jan Marek

unread,
Sep 2, 2026, 8:32:03 AM (9 days ago) Sep 2
to postgr...@googlegroups.com
Dd,

kromě prvního obrázku, kde se nemůže klient připojit k DB (a taky
dostává jiný kód chyby), bych ty ostatní tipoval na problém s
UNICODE/UTF-8/UTF-16 kódování?

Tj. nesrovnalost kódování připojení k DB vůči aplikaci...

Zdraví
Honza

Dne st, zář 02, 2026 at 02:04:53 CEST napsal(a) Emil J.:
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „PostgreSQL-cz“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny,
> zašlete e-mail na adresu [1]postgresql-c...@googlegroups.com.
> Tuto diskuzi najdete na adrese
> [2]https://groups.google.com/d/msgid/postgresql-cz/CAEE__4zD3y5pUECm2w2
> LgyWGQTeAkHN23JPTxpnOcyPOvey%3DCw%40mail.gmail.com.
>
> Reference
>
> 1. mailto:postgresql-c...@googlegroups.com
> 2. https://groups.google.com/d/msgid/postgresql-cz/CAEE__4zD3y5pUECm2w2LgyWGQTeAkHN23JPTxpnOcyPOvey=C...@mail.gmail.com?utm_medium=email&utm_source=footer











--
Ing. Jan Marek
správce IT

Jihočeská univerzita v Českých Budějovicích
Centum informačních technologií
Branišovská 1645/31a, 370 05 České Budějovice
T/ +420 38 903 2080
M/ +420 604 660 121
E/ jma...@jcu.cz
www.jcu.cz

signature.asc

Emil J.

unread,
Sep 2, 2026, 8:43:04 AM (9 days ago) Sep 2
to postgr...@googlegroups.com
Problém je v tom, že 3x z 10 to zbehne OK.
Na tej jednej čítačke kde ostala tá pôvodná verzia (nie teraz prekompilovaná) to nehlási vôbec žiadne chyby.

Teraz som spravil pokus: dal som s malou dušičkou novú prekompilovanú verziu do tej čítačky kde to ešte šlo, že či to pôjde aj s tou prekompilovanou verziou a tam to ide bez problémov aj s touto prekompilovanou.
Neuveriteľné.

Zrejme bude chyba v tej čítačke, kde to nejde.
Otázka je, že čo to môže spôsobovať ?
Nejaké nastavenie WiFi siete ?

Nechápem. Prečo na jednej to ide a na druhej nie. Tá istá aplikácia.
Na jedne stále vyskakujú tie nezmysly na obrázkoch a na tej druhej nič - tá istá aplikácia.





Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/apgXPLRl7A4-zXJp%40hazard.jcu.cz.

Michal Bartak

unread,
Sep 2, 2026, 9:05:54 AM (9 days ago) Sep 2
to postgr...@googlegroups.com
Ahoj

Podíval bych se do logu Postgresu nebo pooleru, pokud nějaký používáš (například PgBouncer).

Minimálně zjistíš, zda chybu nahlásil server/pooler, nebo jestli jde o interní chybu connectoru v aplikaci.

Něco podobného PostgreSQL nahlásí, pokud se aplikace nečekaně odpojí během exekuce (je to ale jiná hláška).

Michal

st 2. 9. 2026 v 14:04 odesílatel Emil J. <eak...@gmail.com> napsal:
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.

Pavel Stehule

unread,
Sep 2, 2026, 9:36:31 AM (9 days ago) Sep 2
to postgr...@googlegroups.com


st 2. 9. 2026 v 14:43 odesílatel Emil J. <eak...@gmail.com> napsal:
Problém je v tom, že 3x z 10 to zbehne OK.
Na tej jednej čítačke kde ostala tá pôvodná verzia (nie teraz prekompilovaná) to nehlási vôbec žiadne chyby.

Teraz som spravil pokus: dal som s malou dušičkou novú prekompilovanú verziu do tej čítačky kde to ešte šlo, že či to pôjde aj s tou prekompilovanou verziou a tam to ide bez problémov aj s touto prekompilovanou.
Neuveriteľné.

Zrejme bude chyba v tej čítačke, kde to nejde.
Otázka je, že čo to môže spôsobovať ?
Nejaké nastavenie WiFi siete ?

Nechápem. Prečo na jednej to ide a na druhej nie. Tá istá aplikácia.
Na jedne stále vyskakujú tie nezmysly na obrázkoch a na tej druhej nič - tá istá aplikácia.

Co jsem se dival, tak to jsou chyby, ktere hlasi npgsql, kdyz se mu rozpadne synchronizace protokolu. Ta synchronizace se rozpada v ruznych mistech a proto to hlasi ruzne chyby.

To je otazkou, jestli neni zabugovany kompilator nebo jestli tam neni nejaka race conditions. npgsql mel podobne chyby https://github.com/npgsql/npgsql/issues/5468

Tohle mi prijde jako 100% klientska chyba, ktera ale muze byt nekde v npgsql a niz - a je otazkou jestli tam neco nezere exceptions, takze se o tom nedovite.

V .NETu nedelam, ale zkusil bych se podivat jestli nejak nejde oddebugovat protokol - komunikace Postgres - npgsql. Tam to vypada, ze npgsql z nejakeho duvodu nedodrzuje protokol - ted si vymyslim - budto tam neco spadne a nesere, co by sezrat melo, nebo tam dve vlakna zerou z jednoho spojeni a robijiou si to. Kdyby byl problem s wifi, tak by problem mely i ostatni apky. 
 

Miloslav Hůla

unread,
Sep 3, 2026, 1:01:34 AM (9 days ago) Sep 3
to PostgreSQL-cz
Zdravím.

Podobné záhadné chyby se mi stávaly i na Linuxu, když jsem forknul proces, který měl otevřené spojení do PostgreSQL a to spojení dále používal jak rodič, tak potomek.

Milo

Dne středa 2. září 2026 v 14:04:09 UTC+2 uživatel eak...@gmail.com napsal:

Emil J.

unread,
Sep 3, 2026, 6:27:57 AM (9 days ago) Sep 3
to postgr...@googlegroups.com
V PostgreSQL si myslím, že nie je chyba, lebo som dotazy skúšal na rôznych klientoch a nebol žiadny problém.
Pozeral som do logu ale nie je tam nič - žiadna chyba.
V aplikácii odchytávam osobitne PostgresqlException (Npgsql.PostgresqlException) a systémové Exception (System.Exception). 
Chyby sú vyvolávané systémovým Exception.

Tu je časť kódu, kde to nastane:

System.Data.DataTable DT;
DT = new DataTable();

NpgsqlCommand pgCommand = new NpgsqlCommand( SQL, pgConnection );
NpgsqlDataAdapter pgDataAdapter = new NpgsqlDataAdapter( pgCommand );

try
{
  pgDataAdapter.Fill( DT );    // vyplní object DT tabuľkou ktorú vráti SQL dotaz (SELECT ...)
}
catch (PostgresException PE)
{
  ...
}
catch (Exception E)
{
  ... az tu sa odchyti Exception s tými hláseniami, ktoré som poslal
  // pri tom istom dotaze nastáva chyba náhodne, alebo chyba nenastane vôbec.
  // prípadne sa stane, že aplikácia v tomto bode zamrzne a je potrebné ju celkom zavrieť.
}

Táto chyba bude zrejme niekde na hlbšej úrovni Npgsql alebo v niečom okolo neho, kde nemám moc dosah.
Chcel som hľadať na internete, ale vlastne ani neviem čo mám hľadať. Chyba je zakaždým iná, takže ani kód nemá, chybové hlásenie je tiež rôzne, alebo žiadne. Raz to zbehne, raz nie. Vlastne som len zistil, že chybu vyvolá príkaz pgDataAdapter.Fill, ale hlbšie už neviem zájsť.
Možno sa nejako dá debugovať aj Npgsql, ale to som nikdy nerobil a nemám s tým žiadne skúsenosti.



--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.

Pavel Stehule

unread,
Sep 3, 2026, 7:13:50 AM (9 days ago) Sep 3
to postgr...@googlegroups.com


čt 3. 9. 2026 v 12:27 odesílatel Emil J. <eak...@gmail.com> napsal:
V PostgreSQL si myslím, že nie je chyba, lebo som dotazy skúšal na rôznych klientoch a nebol žiadny problém.
Pozeral som do logu ale nie je tam nič - žiadna chyba.
V aplikácii odchytávam osobitne PostgresqlException (Npgsql.PostgresqlException) a systémové Exception (System.Exception). 
Chyby sú vyvolávané systémovým Exception.

Dal jsem do google npgsql synchronization errors a naslo se toho docela dost

Tam je otazkou jestli data adaptery si neotevrou pracovni vlakno - a jelikoz sdili jedno spojeni tak se to potluce.

To, ze neco fungovalo driv nemusi nic znamenat. Uz jsem videl, ze jsme zrusili "zbytecny" zamek nebo nejake uzke hrdlo a najednou nam nekde uplne jinde vyskakali neosetrene race conditions
Reply all
Reply to author
Forward
0 new messages