[elektro] Szegmentálási hiba

Kovács József kj at faldeko.hu
Wed Feb 12 13:29:43 CET 2014


Kis okoskodás ... látatlanban.

Be nem tartott protokol szerint érkező és/vagy
a formailag nem OK adat  felismerése esetén >> hibaüzenet(ha úr vagyok).
Aztán adat a kukába és az állapot idle (timeouttal bebiztosítva az 
állapotváltást, várakozáskor)
Az érdemi tovább feldolgozás, pedig áll... amíg VÉGRE
egy jó (értsd:várt és formailag helyes) input nem érkezik.

Ettől többe nem tehetsz a te oldaladon.
(illetve igen, ha CRC-vel a tartalmi konzisztenciát és ellenőrzöd)

Most viszont úgy tűnik elkezded kezelni a "szar" inputot is...
Aztán magában az érdemi kezelőben próbálod kiszűrni, azt
ami protokol/formátum/CRC szerint "nem OK" belőle.
Pedig az ilyen "csomag" a bufferbe be sem kerülhetne már...

Miért?
Nem tudod minek KELLENE KÖVETKEZŐKÉNT érkeznie?
És ezért a beeső "szemetet" kezded emészteni... hátha jön valamikor?
Nem pedig, csak az odaillő/formátumhelyes/CRC_OK csomagokat buffereled 
maagdnak...


KJ

e2014.02.12. 13:00 keltezéssel, Acs Gabor írta:
> Tegnap éjjel pont egy ilyen logfile-t olvasgattam, ami kívülről
> monitorozza a kommunikációnkat, és világosan látszik is benne, hogy az
> én szoftverem folyamatosan küldi a hibajelzéseket, ami ezeknek a
> torlódásoknak a következménye. Az, hogy miért nem hajlandóak betartani a
> protokollt, az egy dolog, engem most az érdekel, hogy semmilyen hibás
>
> kezeléssel se lehessen fejre állítani a programomat.
>
>
> Gábor
>
> 2014.02.12. 12:04 keltezéssel, Imre Kormos írta:
>> Ezen az alapos logolás segít.
>> Ki
>> 2014.02.12. 11:23 ezt írta ("Acs Gabor" <levlista at e8e.eu>):
>>
>>> Igen, szeretném kideríteni.
>>>
>>> Egy (számomra) eléggé bonyolult program, szervertől kap parancsokat, és
>>> az alapján dolgozik. Van egy rakás parancs, csomó paraméterrel. Ha én
>>> tesztelem a programot, hajtom napokon keresztül gőzerővel, nem
>>> jelentkezik a hiba. Ha az Ügyfél szervere hajtja, időnként elszáll ezzel
>>> a hibával.
>>> A dolgot fűszerezi, hogy nem hajlandóak betartani a protokollt, így
>>> rendszeresen túltöltik a bemeneti pufferemet, előfordulhat hogy
>>> hülyeségeket küldenek rá, és az is, hogy a puffer túltöltése után
>>> széttört parancsblokkok érkeznek. egyes programrészek van, hogy tized
>>> másodpercekig is futnak, így elvileg a parancs végrehajtása után küldött
>>> nyugta után lenne szabad csak küldeniük a következőt. De nem hajlandóak
>>> kezelni a nyugtát, én pufferben gyűjtöm amiket küldenek, de túltöltik a
>>> puffert is. Átírtam a programot, hogy ha úgy gondolom, a következő
>>> parancs már túltöltené a puffert, dobja el, de így lehet olyan is, hogy
>>> valami inicializáló parancs elvész, és a ráépülő következőnek az már
>>> hiányzik. Amennyire tudtam, igyekeztem az ilyen eseteket is kiszűrni, de
>>> mégis állítólag előfordul hiba. Ráadásul az ő rendszerüket nem tudom itt
>>> magamnak reprodukálni, így a hibát a saját környezetemben nem tudom
>>> vizsgálni.
>>>
>>> Szóval ez egy önvédelmi célú kérdés, muszáj teljesen bolondbiztossá
>>> tennem a programot, de fogalmam sincs, hogy a különböző paraméterek
>>> ilyen-olyan együttállásánál hol lehet kiakasztani.
>>>
>>>
>>> Gábor
>>>
>>> 2014.02.12. 11:05 keltezéssel, Lajos Rancz írta:
>>>> Hi!
>>>>
>>>> Legegyszerűbb ha úgy fogod meg hogy kideríted mi a baj. Valami pointeres
>>>> történet?
>>>>
>>>> Üdv
>>>>
>>>>
>>>> 2014. február 12. 10:57 Acs Gabor írta, <levlista at e8e.eu>:
>>>>
>>>>> Sziasztok!
>>>>>
>>>>> A C program ha elszáll szegmentálási hibával, azt meg lehet fogni egy
>>>>> belső hibakezeléssel, vagy úgyse fogja hagyni az oprendszer, és
>>>>> mindenképp kirúgja?
>>>>>
>>>>>
>>>>> --
>>>>> Gábor
>>>>>
>>>>> -----------------------------------------
>>>>>              elektro[-flame|-etc]
>>>>>
>>>> -----------------------------------------
>>>>              elektro[-flame|-etc]
>>>>
>>> -----------------------------------------
>>>             elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>             elektro[-flame|-etc]
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>
>
> -----
> A(z)  üzenetben nem található vírus.
> Ellenőrizte: AVG - www.avg.com
> Verzió: 2013.0.3462 / Vírus adatbázis: 3697/7085 - Kiadás dátuma: 2014.02.11.
>
>
>



More information about the Elektro mailing list