Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A GC Problem? #8193

Closed
vicuna opened this issue Jun 29, 2003 · 2 comments
Closed

A GC Problem? #8193

vicuna opened this issue Jun 29, 2003 · 2 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Jun 29, 2003

Original bug ID: 1736
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Dear caml team,

During the development of ocaml-expat a wrapper for expat (an xml
parsing library) I found an interesting problem. A user of ocaml-expat
(Alain Frisch) reported a bug which I could not reproduce immediately.
It was obviously related to garbage collection, but I could just not
reproduce it on my computer. That is until I upgraded from ocaml-3.04 to
ocaml-3.06...

I've attached the most recent distribution of ocaml-expat, and a small
program (provided by Alain) which runs fine when compiled with 3.04, but
segfaults after a short while when this is done with ocaml 3.06.

When I run the program under gdb (after compiling with -custom) I see
that it segfaults inside 'mark_slice()'. I'm not sure how to proceed
anymore. I've gone multiple times over my code, and I think that I stick
to all the rules. Could this be a bug in the GC? If this is not the case
I would really appreciate some input on how to proceed further.

Thanks in advance,

Maas


�‹��xÎü>��ì<kwÛ¶’ý�þ
�§g#ùÈ´$¿�¥î¹Š,§º•%¯$·Év{TŠ„,n(R—�?Úíþö?��$(Q¶œê¦Û½fb[��ó�0� � lkîíñ»…�ïUͪy´ÿÕÖŸjõ°zrt��«µ“£ªþW=UOŽONj‡'µã“¯ªµúaõð+v´}VVŸ$Š­?±¯æ–�=�÷Xý_ô Vúß ì-??§÷ÿAí¨öÜÿ_â)îÿA»yvÑÞ�?j­Z=><\ßÿ86 ÿ��a��Ô�þ�þ�ŪÛbà¡ç_¼ÿ�‰ÏvæÖ'ΠßwX�°kîóЊ9‹gT˜Ì¹�[±�øÆŸÍìó³õguþÓgsîm?ÆÃó¿V;:¨‹ù�Ÿ�Ž�hþ��=Ïÿ/ñ”v·ó”?Ò.�?Åèã€jã�bž; ­ðž=é�˜¶ñ�L­q�º×³˜Õ«Õz���°�èÌ=ø�ÆÜgÿÁùÜòMÖô<F?��yÄÃ�î˜lÈ9bbˆªÛiµ{­6›�!sxl¹^d~�SÛR92õuÇi05g+7¬fž?ŒûÕãýÚ�|lÔ_7�Ž�Ž_�ý¾F�Œø~ÁE³ñ AZYt7÷Æ< AÂS�ùíõ{møðßða|Ѿè�>Ò·áÇÞ¨ùAU´»í‹vo4¤ï?Þ�Ínçl<ê�ßîQÉU¯Õí�ÛzÑes0ê4»ãÖwÍ��ŒšïÇ�?áEsÔúŽ ή.AßÍQ{Ü�?�?wW#ÁÇ߯zß?›ç£ö|Öo)Ò
iób ß:£?ãAû\�?kŸwz@]TPá Ýº� ;?´—¡› XK‡|×<#&Sˆw?^sðq¥?âqÜþ�¬õ@´%��î²Ûl���.ºãËŽdîû^ÿÇ�À¶úg?Þ{©ÀV���ŽòÅ©�[gÍQs<�€N_hs™æwÍÞYWµëõGãá�Jš]Õ—W½ö‡Kh�È FV¶=k·ºÍ�ÔtzãKQsÞnŽ®�m�å߯:ƒö?$8�?Qe«Ù�¡†zïÛc�؇Y2†Þ�"��¿³ù�ý�FfA�¯š?5„‰yè[^V6Žƒq�‡®�Í�Ú¨Üû–ÉÒS¶#Æ/rÓÆÊ!UìдȈº�³“0�'Æ»�ÿ&s×wç–çF±kWØ$‰™�¿Š˜Åp%ˆqvx<fc в<obÙŸÌ?_�8�Ç�ZIœ¸Úa%]4œ31? ˜[Öœ�m7¾g3Ëw<d�H¤“? Æ�‚¦"�ŒíYàÚ\MÁö�í?ì·n{8\îÍf÷ÇæÇ¡¦ÃˆÇ…hY#7ãQ—€à1&�j��ždFÓù?Ç—Ø®MÍ.E+¡ý?ÇIè“�yá�ôå'ó §nÇRž[ @�)ó�¿jÕ‰ïÆk{�?ý @�a�z,B/Ö�9ú°�“²ê$DÑX‚€R|;p�yCÒ�j9=?¢š4²—TÜ¢æ;kÐŽý¨�sÄQÙq�6ì™�>‰Vo¨�ésîp�e¥¦«��twÆ�©õt•Ô²<ã(™<ˆÈõcí?D[ Ã0™h¸§.þ^Å+Ûk?Ï�RÈ-æ'÷8îHÄl‚VB�ºô8þ v,aÇ
¶p�”2aÔÇ])™¡™PŒ•ó�.O†!’l�Šß ‚šÄèRlÎV¡��ˆ¢? Y<ßÙP7�¹��¥ü)¯e�DoûÎ#‚oFs½Ø��h
À�²l Ä�+¶�‘;��#ð–Do)¤g€s?ô�S^¯€b:´Æ„?Í#2ð®�œ'6-P�ë"k4Ö�m<QÖ*¨h‘HIu2Jë4õd¾R²Ë
{˜,
žž›-+ãEÔ�Ö@Y�'�ÙÚ�ò(­µ‚.cÎL¥?›�Å&Ò~l.¨�ø1�É0µ�š�›�\+g��e÷���mÏÖÄ�Cô ?›�[+â r�ÐáS+ñÖ�SY¿?az&?­“îqZke[Æ,¼tåõ �9äÓõ½(¿(7�73W?pØ3«µRPT•*Š,Úª
‚CAr$�à�Ÿ®��ObýI�Œ‚9—![å?²�$�œêU»�?vFl…Æ“{ðQ]ßáw�� 3·¼�½�C#Ú¾ƒ¦�l¹SŒÚ�¼dî?¥ÃÿTì-jÝ£Æk�À�Š�.ú.´}�9)Æ��Àò9ŠiaKè�ã/�,_?ÿ^XŸøÔõøöh<rþs�ÿ0þ�ÏA
þRü÷ þ�ÿý�ÏKã¥�!ªn§�b­šÆ�«uV«5j'?Úk=†h¼4 %8¥þ5ž�¹´éž[±=c÷A�Ê

ºp†èôÈ4Ú�.›£q·óîtÏ£ú¬ä¬38ÝO¢p߃�éí{îDÖuz­¥:×·½ÄáHþÇ��9�–t(´ ƒ &{w¯–Î�ë·˜¿ŠÐ/ò�+tÒЃã†Ü†Ýø½itzÃQ³ÛEr¿|]ê·š�Ý�¬�·Hä�$wîY×�E�‘N�ýÇ�h,4?Öy·ùxºwvÕ펯zƒ~·Ëöúu¶×ùº¤�R�</_2Xç1�b�þÔ½NBÒ�,rä¢��‘�\õNir†‰/JZâ»-¾õ/Gâ;,Y¢ä¬})J�¾0.¾G=Ó×ù'T§�éK$N�FkÜ�÷÷á©0eQœL"3€R€Ó*L{�… \�e¶çnúÉbT�,�ÕÞY†�ó(�A�üÄ^�/Ì}õ?*©­*1Q� ‚¾ã�¢O�d�ÃP0Zkµ˜É�Z���7ðáŽ�2Ðà

  • ‘Ž5£fæù�!‹�W�¡›r4±=Û³múÓ5��w–Ö8eâ.GÈ0 �çbæ˜Vƒ}]��XFbÔßHÉf�$«�Bj�Š©VfÚ÷2F�¥ø
    ¦“@ j0䉰”BZŸ#½)Á»�(6Pñ§�ô�m
    òI\ e×wQ—ô7XV$�Êš�†A�R�Q;&Ë�õÁÍsš!@˜�¥aH{ÕÐ�ž>vìEá0V§<.È‘�«2Á/i1WíNÅÔÙ›2Çó�X�¼E;æ3h?+Î7�˦n�EÆhÖ^�»éGVÈ
    ¡3Àü4Øy�Ðj�ó�f�¼er€‰�ÝÍâ¹�Æ“™&üO?¤¡%5j�†9¼:?ï|h�� �i…´L:�Ó��ñk#7ÿm�:ý‹K2Ù0$¾A8lº�Ø]cin��Úæ
    29åw�V�î ¤íqËo�l8GÕîþ�Û��»ð;€��~ ;0!g×$?ˆ?v�ålXf
    ÁòÃþ�ð]Û@òâ�ѱo™)ÊS–¥(C�ê �³o3�¹º¦ßÿlÿäùùç>ëó?Ü­Ñx$ÿ£^Ãœ�•ÿuDþ�½þœÿñEžçü?ÿOù�.íÞÞd Ǭö¦Q?n�¼^N��.²þbù�[„Á?ëðˆY>†<x8µlÚgá¾G€~¸è2q6i��!�Å.ž£K4�v�âÚä³V…t¦Ž¡±­J,� vðô�0Ë@›ÃCï�Á°ÉEð«�ûÇ »„R�û Ú6�‚ðÏPz�Ï�ÿUDM�ºƒ�ZÄjLR��X¸Ñ�Ü!�9c�lMA�d@��yÁþ�\ôHîdSþ=×ÿÄnÝx&‚€@bìÀ2ŸìgQ�œæ p©Ï|¢Ÿ%?¿Y °��?>fè}BÉ�?tµ�§iÖ@>k�Ûüv$û‚ÑA1l"�Oû¸¥�Â}« �jŸ¦ÇÓØm�,Ï�1ˆíÆ,ZpÛ?º\hÖÒÎÙÒ6±Ð˜Ú�«�5A�@�Üð0¤1¤zV�d��n{–ØüšrüÌ,Ü'!›$®‡ñƒ�:2E'_ ÷šÃV§�?ûÓÕè|ïµúP;ÆO?a�ïõë£7{µŸQ�7O?î�Pm ?äÒ·æ<Zà¼È?¿1>?Â>¾?ögæ�äú�Zd}Ûå1é^ò&Ný±³��·0~\ésÍ�ƒôo¡åF<—Œ#ë<?š<ðY� ‚,�%�?ksv>#
    A0Øña€Îu�©�)�Å?Ý0�¸Ô«��S’�Áö“Ý¿y$[!í��–‡�#Ž‘)4=�¶?©ÏÀ�àÔ��G‚�+D®¢H¤q OòT ¢*Ë»µîFix README #1�Äõ 5äMö�'‰µXx®m©4'Xµ�?�¹�ONËÐò#�|“y7�LEÅ�¨*?¶QŸcjlýv̆¹|‹H“+ÌäBø›/’tAd>#?"•§­eHl Í�L“ÐØ}BòCÊlk5³�>oÀö�ÏrÐ8�RâBÊ{vôÎ:�� ��ñÏIOÐ�û¬<ƒ¬s–2�6é–ÏN&лc£,?ŒM<K�ƒôdõÿ‘Ô€•iºÉix~Öýa›�§š’G«©�ß@GŸ�ì®1ºÙyzfÁÔ‰¥8r†õeú�–�>‡¦Õ¸^á³­³ô�Ë�õä“ñ¼ÇË.ƒÈ%2ç‰OÃ<ÊD
    Êy÷Jƒ
    N±WÚ<z0]ÌÖ�§Í©´”à ý½�¬_×fì³ç”ýç”ý??²?ƒ®?¦º“ƒî°É½ôï§rª¡Ó�Òˆ”�»�ø�ÍF™wòxÞ?mµ��6‹1F�²± ¨-eHäFó«�,?6�ndsϳ|�$Ѳ?@�Êçbc›OÒÇÉ•mº·›ªOúõ-tÔÕ΄,æT\�Èøq��©[TœÕ_h¹7Ìë�Ì ²„ý|(H%â[QÖ�%n^›�¦f¾92k;ŠKQ¸.}ßøë$Æü‹<«ñ��åÜ"?Gò�êµ�ºÿ]=>®����âýÿƒ£“çøÿ—x²ðxÉ.ë!r°ö�qJÃ�‘½²?Yלiƒ‡®Y¥¸Š�›†qÉù�E2?™5�z�Z~Ì? ›†œâž¸ë¼æ�Z�|XuÀš�c�[®?VÄ"R"¦�hÒ��º¾hÂt¾¢�ßb4¥´ƒUCùu§\1�½ÃÁf¹Âð©*Šø�IŒ.*X-Z1*L�Œ¢ù“Õ†çÎ]q1žšË£���­�‡�6��wŠ�9 ´H&ž�Í*†ã"êI�Ca„…6÷±�H°� /ïyˆ�Í¿¼1¥¸�1í80�¨ÊX*‡èÞ΂y^�PÎ�ì:?�!&'�}�Åÿ %AðiàyÁ-Š–-à
    ÑÓÖ$¸áZÇúAŒk‡P4_dý)«¢�&bM¸:Iv(槉�Šø�t¹‹Ñ=ôg‘ÿ%1MA_—DžJ8ì—_5r£W¯
    iW� �¢{�s¼gŸÀÕ¯š ô!Ñtç�ÏÅ1–õ#Þüè7õc�‚“¨„ê è8�?~lM\ÏÅàøÔ?}ĉ�6º]�R'�˜?E�.‚HèÆ�œNqÅ£ ?itP?ŒßPè‰4Tt�0Áì5K…ïP�Û³Üy…9Ö�æ[d ÿD�;�“ ÝÎ8�¡šá¿­Â}З1Ænp�?‡�Þ�5½uiœ….ù�Ó0�ô¨Ah���hçˈ��}ä��Áï�øOyÁ9$#Š��¥]øg�·ççÑguý—™�[¤ñØû_ÄùÿÑññÉÉÁá!­ÿLJµçõÿK<¹äO�‚�_í4M/г;³ä½\©J•,*Ô ïسUø¿ô¬Îÿí¾û ŸÇüÿ:8ûÒÿ?:ÀòÚAýèyþ�‘çÅ�™˜2Zò›e�À0ú°™¿qù-æ0P²Èž–êq�Z�ð�Ó,€,9DE'Òt|ÕÊE)"î�²D´��íd^± 'zÈô�t�ÑáUi$€CË#ÉÒHX–A�‰�’å ’½,ƒ�?(PÃèh��PQ{¬
    Ž´x��øZèÓ?ºDÁ„»¾/ã=X ®^ˆxÚÔ#×\fMà?�á‹Ñ]‡t¯%3ˆÁm…:ºq�ÝG1Ÿ›Ô‘òX?Ž‘E‚Ê'ÒO×õ“;S0x�È���š?�¢¬#�êÓöÀ�Ï�¯M0ßÂÏ{x
    ?Þy î¿±?ÜUÉ�‘Z€�è̽ä�’,âÜQ‰1; �·“��–+¸%IÙÀZÉÝè¡�‘i­ð­e¢E©OÁFË+ccqW »�¢5Áª�™¦�ò�$n¨e©è7V°�ú”Š¿ �¥�G¸Íi��
    J�ªÈ<�?�Ô}�+�²ñŽÛxé/Jâí%8ôÝ)�—�v%È�ÒKiH<@ƒˆè"F9æ•ï®îÇ, �e H€ìÊ cÆYî qP‚�sˆê»‘6?eŽ‚O�Ìt C ͆1àS�×>0?mÉF4Ø7³8^4ö÷oooM ,|‡ ¼þöÙwØö³ºþÛt§Ë�®·Fã‘õ¿V¯�©÷¿���Ðûßê‡Ï÷ÿ¾È³Üÿ‡ÂÆ4� ´€‰¡Ó�´á�WµÅÄMOL¤yº°�a�Ô™�&�F3À�–j‚ çÁ �°ÐŒ;°š[Ìvè…>ƒA�0Æ5™¯�?¯¥�ñzUîM�‘^“å‘áÍhŒ›¸öŒV?Û(Ë�£�R–¡†±²ëk0ÔÜ!Û�ü7=�ìØyèFöLŠÜ�ãìZžû«–À�kù�–7¦ó? � b^\ú�©k/˜@m��±ñbEØzÊ7ë{.8_!kúNèò�|”k+œðÕ�<?Ëà$Ú|JRs��–v’ˆäº©�Ëý�á?Ðy“CËN$¥ŸÂ�.–+í0çH¼�+Jl›ËÕL;"?cVÂ�lâSÆ�xW€y^.?¤&$9wÃ�ã©�·„Š58hõgO‚�ágÍý���Ø ?‡íÿaý¤VÏÞÿLïÿ=ªU�žíÿ—xö·t�aßØßÒý�´?GÚÊý?}†¨¶rÿ�™Ú–Ê‘©ìþ‡š³â�ÿAz ¤Âê�?êëFõMî�ˆh?ŒqEÄ­�Ý£W—=ĵ�Z�Dg"øKu;ð›(vÜÀœ}›+Â�3
    &<w(ÒÊ�ñþÜ»±¼„Gypª²aF�ó‚
    \ªí‚ò98�°�)À¤^߸Z…�Ÿà�| ק
    ½|×Þ�8+Ý”Yi·TÊJ1��³)Ç‚= T.“�
    ¶‹�„ˆ‡� �5(6칤î[—ŽÆĦžNÆ"W8KˆAå½ÅÉÂãr?¦}¡ð���úN8� ��S¥þÑa�bÀ»
    9‡|®ÄsØu@笘ڽŸŠÛ»º�)GíÁ?½1¸ŸÌå R\ü†Û1º,=�5�#•µ¥ZUÒêvïl}%æa5[”ù…�P+õ—ƒ~«=Ĥ£1^��\Q†T�žþE1�Á\«�;²¶¦ê¬}Þ¼ê�‰³š ¦€Œßß�F„{Y›Ý�®Ã ™cƒ£Fº_¼D�[††ÊÌø?‰h“�GY�vº<êd£·ÐBÙM‡Ž€}Ïã«H¼�®”!‚�Ђüj®{–%ÕZ�dÄÎCÎsí�2‰’?ñ�^o÷{*1^­Ð�Æp‡�*yoj�ÉóM½@êEmUÚ›�IªCÕ� ê�åNKˆã�Êêõ¢Õ¬â�½|¯ö–‘Bè[M�Â�À_Õ¥˜YÑL‰ ø–
    K�^µ :>‘9ΤQ��\gŠ´n†Rì>œO;íô­A�ã�Ž»‚A´T,U½TŠ¬c‘$�Eb�¢’Šµ:‡¯Ôâb¤�èŒ)#wi©DW’vÕ�‘²ñ›Pº
    ø©ú3vË«ÿ¬¾*‹D4©¾å·—–zWÝ.õå:€”†®áu|?ýh‰µ
    å?àeª�™|ˆÇÞ?¸¬�’�X�¸Œª€Í8¦ÑdH.É¿�ë¹y¥Bc XÆËù”³W-‰9‹�ôÚ›šn�pº�V‚šÐz�Ž�ë0'ð_Åì“�ܲ�üÀ���Ì¡ã~ü>O…�«§~Aʆñ›ÌyT�h¢€u^ÝpÌ?�o�£WÖp‘½£¶Ñ�øP‘Ì0¹åžg2ÁÄ~�%‡)@�¸\@Kÿ–Ÿ! F�œÁTÓN¹ÂÀ¨�Á�?„�Æ°‡†�Â=Gê‚êq“=YèÖŒ ‰~ªŠ�" �p¡0‘»¡¯³´2cÆ„%�¡Êw�í³kY”\/�d¼'¹¼"gRk–› +qP�Bf=F¼êV^Å ¤�[ �,�õý]Áaz_qEªYà997ÄLyÔ ‹Î¡Ö%Ý; �Aa%�€ªoÿ·½cmnã6~¶~�LÍ”GY"EZN�?DÇqÒŽ§�'S;ÓÉÈŠæÈ;Êlø*�¶”ÆùíÅî�8<ï!KŽ?ò<¢É��Ø�v��Ü>ؘËZ½œßyð …â?ñ}>ÌŽjvŸ?[ú3ñ:ï �}²Z͇c@œÆ�O³ñ�G™žHwU<#�+ ùŠ<Ü�Ù0�;�j)Ñç?��l{�pÄ$Ô­v>9"€Ÿg-ÝgÆÔ��”+‚âÁ÷�'i±�O�Míd–l�B?JMñ)š�‹�S�S\s\}T;-����¸´2±?K5‰JV�#?½>¤öwîá�¤€Â¹ÅžÏE%è« iOŒAS?ÒG�¨ Vè(�éW®8� ?�Æ1ìž…K��— :ÛB?¹"²�÷ïFÈ�d�²,€-¹©ˆèêU�Öc,ÖÆÙ��¢í½2Ð�O™šHç‘�k£¬?– l?2½nµBØk¦ðˆ»?2y"½@��  ÖŸ/®…�CäÀ�ؼ��Ö�€p�À3y:Š�o̽Èxƒô��(…�¹�?$WzHO-µ¢8¶$".¿óù$
    wæ�ò}&…ųÙ��D�ÞÉP¾�j] ñ w Sxõy)¶¸ARÒrDHyˆÞ$pøa©_ÝH+‚G�?hÍ„¾‰E�?Ý´|�­�¹T;uów�”3b)X…”P´°�¾É¤�‚«š�ødFÑ�Ô¸¼ÉfÙ[to�Ãj°Ê˜­ÚìÅ|?��ôxMm‘éõ ×PôF��‹®’�¼Ù~—\çŠÂxÄ"ó±O±�¡ñë�Az„ íÖC0:åëMZ2�c�ÀCêa�¤C�γ¶�ßÑjE �Û�«kælOo”¯r3F�ƒ“�›�»T>ë�µ× :0®–��"½À�"#7ˆPGË��½žÃ?Ó‹dy‰oÍ£Æw^�ÐlÆê?S»x/õ+tغ�V?¦¢=«ãý\NšDª¸î•z��zp1[!k{%Š˜Ø?€D�ÅÖ�€q>�< ¡™ºŸ÷¯kpšj"ú??]L²ÙåúM~›�¨;­rõ@n}ÊÇÆÙ]¼wUC©äêÃø�^$��–A; ÙZ�ýÔ�Þ—›AÁ�Ë_\5–ùsZãd?û>U‡Š7š��€ð�páîN�{ „=ïœ�¿ü�X|ÀdT˜
     h
    ãQ>ä˜rÄ£dh˃:8»uâ%Á|È÷¶wJš/Ý*â0ÃãEÞ¶�.ÛñFàˆ°l�vq�/bßX7ABšwö’õÚ{ò¡�|<Š ��Áqš]fo÷��ã«cr�8)Uýkg%ü�F�1w£Ðœq‹–i¹™�·G¾A%H¥y�Ò躳¢ÅQÛ�CÑÙø�vÉ�NYONÇÙŸ# ƒúÖÖ»'d¹~Ú??{¸o(?¢§V¨z×W?ó_÷\;�11�¢ß.!†ßË1£I9Ä� �‹C�A?b-Ä‘¿Ÿ�}¾��ç<8Ý]š}8¦Vˆ¿§ÿÄ�B±jšæÙ×´ €¼ö{Á0œ–ð~>@¬¤ù‰ƒ ^ä�n�¼�i!}îc?îA¡s\¨EÝP¼¤Ëû?{ÊP��m7 ��JH½25BûyQ�?ÍZE‹Âm¾¶Ð§»Ú؆0õ§2„ë0�bÅ«Fpq�ôâ[?Ë�\����—�ò¥Û#uó†JP�å?ª¶ÔUF’V05œúªó??£ªÆš³ã‰¢T¾àÐãÐ�rŽ,]0ª ƒ?,ð¼�mÉ•Êæø��¨ÆËð´U´“^iL��ÖgÎݾ7ÇaÞv�ã�8Ûíã¶ùZŸpYßCØõxº�í:�íC¯€Ÿ=AÊ –Þ7yÚai�x±b®¦; Ö¹›�[yìÂΣ\KÄ�‚ü •àz¹5šfÓáâ:2·3เˆÈZe¢Áo A;Óü]_¡~��-[Q¸w�(×0ÎR�>{ �0/ ��ß „äÈÍň·—Û–$�jÈÏk}ÅòÔµ–x)}œ:�¦�í�a#¢ êI��ºƒ#gŠ£ý¹òÆ�8k�FÁ·TLÓ«m?T"‡z�‡O+ ¢µ¥{Pï�šZEØq¥=J±™�¨(„^™�Ú)�?è�GbÓR”?Ñ�LŸÿ֥IJ-,¢Š†éöEUao·-²J(G;;Ì9­�ƪ\GªU~ò:Ò­â��©TfhѪ�Ί Z®B•jNB�”�¯•Ê¤ >dZt¶j� çY 2Ý!j@�ÈÈŒªož>qá‚çEÅš?e�[ ò�ƒp�ÊŽÙþ­«9Öd+ÜÍûõ6L�8×Òe�¸�°7?»SÞš,k³9X°z¸º„‡+p«Ç̺e�ë–0îN �°«-¨ãͧPOÄ.ö��|ê»—r.öY¯—œnz†%ÈÓ%o‚JÏ8ŸÞåþÅG
    æ9çÐܹÔ>å ¢_ÿŒÓ?fÉIç?¸Ü ]}�<^ñèò�ùÛƒºÅÝù� Èt]Êà�Šw�®�Já�çGâo+Óø?œsú™Æ)©}Öy+|�FÐËÕ‚­¿5=Ï«2µ�æ½Î�§ŸÛ-=½œýÓ‚ÓMð�Ò?7ÓÚ‡›–7U5e
    Ç��ß+10vµ‘ûÜ#'>s)aû£…e„9�w!�¬�n[4ØS.a¬ûõÄB�Îu¤B�·?LÐͲ_Ìg�XJ&l¶™L¤a&¸,PŠ�´�^H�^z5ò�#ù¬Ñ{�As¨
    å 2d >9A¹�$/ëÒ�^'°B‘Ñ‹À?g�?y.ÔÛ‡ñ(Âw ¦M¢M@\*I£Î÷,›¬2Q��ƒ„„‰º¼�«û�ônE?%?oeL¦ ´�
    Ìl$ HØ9庖'+Fu�
    Y�
    ÒPøݵöÕa°>öà@Ä›2Åù Yeû¾Ú�°ëYjVÇ�ÁÃgi™à?ŠP@ä]Â/싾j­ÃOÕì?ö1�?,/ÏŽÎM'³�ówl±Y‹àQzf)t �K^ÞÒ ”H�Å$ÖÔ�a
    �$±ÄôWs�m‹ÉGÁ4uhä,‹t‡+}8„M—Ã%P&�41ZÞšP?WSÝ[4,n“� 1ÈÞFµ� �|3ÖËÕUxmA�²é�}Ç“�{¨?�>(L�ø3�O�‹‚®€‡?w{ê®ÄZ–<T%�¿Ø8�x�Ü/„ý¤ùò��!†/Ýc%\a^=yõãË‹ïÿá�Eì”ä„ñ¼\ ï ‚ þçì�8/øÔ� J·�á1/ÚT�FçN¶�¡¾n}�Q@$¾÷��õÍŠµö"Už¶Ö¦¤ÂSùU‘›¦Õpãÿ¨„âÓÉ-Ř)Žÿó°ûe¯+ã¿=ÂûÝ£/�·ù�>ʵÍÿügÈÿ¬ñ,Eÿéæ) �ñ¯ÇG_���Ù) 1R.N�}Å £Ø( �ú�¬„Ó�3=ÕpD&Ù:Ͼ�k��hgçX,�ŽÅz¶±ØL5�[yÆPÝ×óŒÅF’±Ø—a aü�Æb'½Xìä�Cp_n±ØH,��YÅ�ÈÉ��§�‹?|bØŒ?O,ö$�‹�™Ä°?P&±ØJ#�;9Ä�Ü—C,�&�C˜²�bñ9‹¹6���}}ú�b�À��L—ÿ³á
    ýï|I…HS"�òÅ|t?Ñe�bµ�¯A-''º�ë��c†«³†‘[
    �X4Ú𥳥2�6~�Yµ |ðšY�
    ?f‘™ ŠƒžôY£?QAh» �
    O®1­Ã‹<3¢ñ?�‹|YÊȹsGˆ�õôØÖ�oªñšCþÌ®ø�|%M?_ÏÇœ¥Ç^‰U3-!#k¤ã���/çkt”DÏ@‰*>ª�—L>qK¶”ópœ?‚��� EÿPÀä-øÄ‘¢"ómó'ƒÄŲ‚–‡ñ”©��™�� 4:è¶�'%�iÅ‘te�Ît�Ö8Y'—ý†¸û¨ �Že,�á«J}$ý“AÿdØ�L’7'?aÿ¤Ã�v�Õïã3bjq­ÄÌE�e^�7_þ�Q´É«Y�Ã9�Ñ,°�ú ‰�œ{-wŠŒ¤•Ö,‰?ÜcÑK ¦Â%�à À"!?Б؈�ªœ•ß-çx¾²z�[�Œz&�+‘„™i3@�f¥œ0�i¨Í⊄Q
    Ä$À�U�?˜èf·2j@G
    ·nÕ¾^Ï$HåŽV‹dÚ¯ôL‚N�?ì¦7!--äƒNX�IªÍþ6¾ÊR3�m-2Ó“³�ˆL¯’“X—�J/ �Øë�ü;éèÄv��/�å�ÈÎ$÷�¡!�

ýÁ?†�Pjˆ°F¢±?4r�Z‚³á:K±
�ç[ZN°z
�2wðÂ�¯Å•H­É¬µö¾Ù°=¾|OÏŸ®.?£�¶�í�3XeÁ�' ?ˆ�3Ð÷¤nG�¡�D*ƒ j�P21Ê
�lœ�þa”�[(�ýÂ÷€�È|˜ãS�¥g�}ÒÏÅ?S½çJ:X6ƒõ?\��ÌD�l�êK��‡K�ˆ5+^
$vd.?æ�šC�¨Ç·�
ÎG¨è¨”h’51�[’�{Öœâê¿Ú@ÖAŒÁ±–a;…�­Å¨Z6é"åŠj8k¨VV¶€V‚àË���µàN’�&\9�>+‡”B”Øü/@Ц?!BBS§rx¬\wøºRR��1"y�‚´�Õ�Î�Ö2+ua¨6��Á“÷Îÿ*
AÚˆÒà–_��¢¯ �ù����ÏÛ}U?'eV�9§êZ¢$�3.O�ŠZu1�:�“�(ó
Û�8âJ�ŠQª)Ž\6‚°Ë�]aûC_�þ�1½c/X�Er�”g@´Ý�}Rl?…‡#-¦ò²b5é¶�ñ*ßlF£lÙ�Uº J°:l#à“4•;bh·Ñ‘?�ª!œ‡Y?ÅØ¢79|‘X7ÙÏ;⥃œ�ó�LiÇ­Ø‘5™qAQšÓi 
¯”uúv‹©Õ�Ì/¿#E³>¹ö‘G'é :ÃNÚÉ�,’“�ï$gë� œÃç�ý«–¤�?¬¾[ú�˲ۥ‹
2è�# ·Í�!Š!'ŠŒ�E�"
I�C?�ñ]�?ß�‘�8-žm¨ãÎv ÁE §ò¹o·?¹oóË?{/4÷¼¨lî±Mgî¡Í�˜û׳v�þè�þ4$òÛ
Åy^�‘…Jx?}b;[
“E–JòÉý­t·Ð;$#?ŠøÆ;K…ú6JÀ�J/_Œ5I�>œ�?™£FU�²jà±c?04Ü æË�%Ö|]磕¹´\ìÁÆG.�®?N†i?µÁ}ìëëÃe[ã[qԾ̆�¤ÄK˜ŸîÚøŠá¾�cS �ÞŽ|»œ�. Aêó¸-ð®�ñÙÍ�ÉÁ×ÎÂ×úG$�§öý3|-v�±¸æìää„4uv~Þ¿Kr�²K˜6½bþ­ÁÕ•?[¤�eÀ�¤�ÇÄ?o² È›�οÛÆÂm÷“��’�€�ð�èä¤ßïcÝ?A�3¦æW#�5T’�¬Ôu7'�”ó¨VˆØ%j9Ý�eBmáÿÅê$C+žeïè?²e�·\�°Œ¢a P?ÿ¿M½bf7�âÇQ^á4OX[ËT?r´~#�tx¡ _ò?ËoÂÎ�‹ð+�¬|ÇÝ–�šœò„ Ø�œHJ¶K»eÛ¥H៴JªÖilðá? o�?´::rôÇ—3°ù¥(�((§�(�³,²'Ïÿõ䧗²é�{A?ÓþÉtYöñ�˜j“IÄi³Û>lªT�§ÍÍê Y
Çãæc?ožÜÿöû§¯
úá;ÈíË~øñ›çÏž²æh9þõ×IÖ„o×M‚d�(‡èÿ…°‹9�ò
•¶�»@ÞôÁ[ßEŠ��î†6œÎ†B?uTÛ �“ÕfpקTäë‘Ý7¥<?ñu Î/ÙsÔb�_@R�>tÈâA“È RA„â¹ ê�Ç 3®.°‰C>�±¿¨[PÖ+({xÈþê#�9�?]Žôî.G›�pÄùg�¿§üƒc¾»K�ÀïdTšâ'�j�îO}§ZîRÁ„�Íj<…¨¯nêVJF�"6¾ß?)9�P$�ìB6£­�÷øàrJþû°=ÚL&�Óäßó¥ZËa�˜é¶C²}P�Ÿ,—Éu�¢‰ó:9Oˆí£ à(ºb� ží�Ø�¶ZjŠó¶ ©Ð)�;Â�øÚè¤ÙÛ�8B5¬Ê¢CeÕ�ÓÈ;ä@‹?RZ  ôdâd�+òp2çó�wùŸ¸��˜ˆ?-ëz^eÀ€Næó��y�Ï�.è†är4¢÷MpG4w’÷’‚±�§�Øp©1GáÑ-’�¢N¯¼Nº™N¯µm�žoß+�‘îC ?žÝÓ›_ð‹Û=ÊÛ•ß
ÎÅ»&êq�?ž
¢Ãx?Y»,2�(�ÇX�Õ+‚Ò¡C‡}¥Ý†�ý=ë?Ž˜.íË?(î¤\ùèZÚG�˜ž�Sª³tK”–
MôJ›?ÿ[æ•B�q‚�ªQ—öN%�p�ç�=Z‰��z�[¼Â™Wëz¬™Sà¥iWI?n…‚ ÖçFŒV�ø�¾KD!Ö?ɳ8W?1��ž���øÝñÝ«TÃT[ðfã´‰�‡yÄó&z¦?6µ;?¾�áºÃâ<;X¿É�¦ã”?¹(™?��|›Ÿœ6�Mq“ N›Ã&�ž6Suëê´y­5�ÚÄy~tY< ¢–X}»•Àz6XÏR’¤¡æ˜Ì4ù�sr°XÎç#2΄�{X€9ö„Ý�¤N��dXÚÕTŽ)ëƒÈ¶7Mf¼�|í�?ƒr�? �ý|É�©õä�}&�8'+þ�—ט¤eÎÒl2�@®Élr î�ÃŒ<p]�c¥š t}��ð ¼�‹°KöK–-Vl¹™Í0X+Ç�íU8[�±@�‚dµ†�Ì�áÝ�ì|ðv<߬8�h­×έ%}Tk�³÷?K{p±$ÂWŽÆ¾ÊÜã+T934ÒÆ
�#¿‹ƒ
ªødyÙFÎÃŽÏ¢Æ?¨ÖØÇ2ðgÐ[Úg?�nÈ"�-?¸R.Û?ÎÓ¬Í7�çØT®�a*��Akß$)ß,Á§ÌÏÂÈšáª%Œ©£Æ�ò�Ñݗ׫6¯ø¶��¶À°›?IìÎi“ç�H'z—¬¸F;„ód®¼±ˆOÇ� w±^³ß�Èñ}‰(šÇs
æ
;Í®øCvwäõG;�m¯íµ½¶×öÚ^Ûk{m¯íµ½¶×öÚ^Ûk{m¯íµ½¶×öú$®ÿ� —#$�ð��----------------
let buflen = 1024
let buf = String.create buflen

let x = ref [ 1 ; 2 ]

let load_expat s =
let ic = open_in s in
let p = Expat.parser_create "" in
Expat.set_start_element_handler p
(fun name att -> x := [ 2 ]; Printf.printf "start=%s\n" name);
let rec loop () =
let n = input ic buf 0 buflen in
if (n > 0) then
(Expat.parse_sub p buf 0 n;
loop ())
in
loop();
(* Expat.final p; *)
close_in ic

let () =
while true do
Printf.printf "Bla\n";
flush stdout;
load_expat "bug.xml"
done
;;
(* let () = load_expat Sys.argv.(1) *)


XNRFRJGQKHCOYMALTIVEXKJAOPQLNDMHLLOESQLBIZFUHLWMFPSQDXPGJQWXRSNCCSQKUORDLRRIWOUFRUJWFUEODGQHFYBLYRTKRWAXVLHROCHBFZBLVUQJKABTPSWDWBUTQTOMTQBTKLPIFFSOSFUIFIRUOKAFBKSVVNYPQEFFTRDTHVVXZPJZNEDORTFZLTGQGIVKTXYZZMPAPLOZUXOLWMXSRUPDYZJLLCRCSVDYBMZQBZQTYVFDWLQYNFKHKKOGCVGRLVJBPZRYFHBNMRQFWBAEVQQNWPSPZXWMIZINIWPBGRLZKAMUZOYXLKSHPQOWNYNUJAUBFGQGLRFEVJRQMKHOHUCYBEXNOOAZTGKFNPCPANQDTQMDPFHKVPMYGIEGKYQXWFOSTCNHXVCBVMGJYJOTJZCOZLBSAWGSVMSZKEQSFXQVYMRCRZKYHBDUUBDVDGHUATEKBDGSOVZHECXGFKIBTYUAn>OBNHYMFEOCKGFJETUXTZOZZZWKEPIOIRFZDLWQLJNXZPZNVBAYMINNOJFCPNGKHPTWIOJFUGWQDNAUOKELVPWOKPSMQASYUTVRWGVKODJNHCTBUAIVGJZWOUSJLGODZIJGJJUKVUIWMVLXGULUBLEVPJFRVJNNZG
@vicuna
Copy link
Author

vicuna commented Jul 8, 2003

Comment author: administrator

During the development of ocaml-expat a wrapper for expat (an xml
parsing library) I found an interesting problem. A user of ocaml-expat
(Alain Frisch) reported a bug which I could not reproduce immediately.
It was obviously related to garbage collection, but I could just not
reproduce it on my computer. That is until I upgraded from ocaml-3.04 to
ocaml-3.06...

I've attached the most recent distribution of ocaml-expat, and a small
program (provided by Alain) which runs fine when compiled with 3.04, but
segfaults after a short while when this is done with ocaml 3.06.

The bug is actually in your code, file expat_stubs,c, function
create_ocaml_expat_parser:

static value
create_ocaml_expat_parser(XML_Parser xml_parser)
{
CAMLparam0();

CAMLlocal1(parser);
int i;
value *handlers;

/*

  • I don't know how to find out how much memory the parser consumes,
  • so I've set some figures here, which seems to do well.
    */
    parser = alloc_custom(&xml_parser_ops, sizeof(XML_Parser), 1, 5000);
    Store_field(parser, 1, Val_bp(xml_parser));

The last line should be:

XML_Parser_val(parser) = xml_parser;

Explanation: Store_field works only over structured blocks (blocks
that contain well-formed Caml values). This is not the case for
custom blocks, whose contents are raw data, uninterpreted by the GC.

Actually, Store_field inspects the previous value of the field stored
into, to decide whether the GC should do something special with the
previous value. (It sometimes has to.) In your case, the previous value
is unpredictable, leading to a crash in the (relatively unlikely) case
where the previous value looks like something the GC must act upon.

With the fix above, your example appears to work fine.

Regards,

  • Xavier Leroy

@vicuna
Copy link
Author

vicuna commented Jul 8, 2003

Comment author: administrator

Problem was in user's C stub code

@vicuna vicuna closed this as completed Jul 8, 2003
@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant