Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum
ReedN
Wizard


Joined: 04 Jan 2006
Posts: 1279
Location: Portland, Oregon

PostPosted: Fri Mar 21, 2008 11:38 pm   

[2.20] Crash when trigger second state matches a very long line
 
I have a trigger that enables upon getting a command input and then matches a very long line. This quietly
crashed CMud without popping up an error or anything. You run it and Cmud just disappears like you weren't
even running it.

I've written a small bit of code to help you reproduce this. The alias 'test' will #show some text to get the trigger to
match on it's first state. It will then display a large quantity of text for the second state to match. This is where
it will crash. I had to do the #show at the beginning and end of the 'test' alias because of a prior bug which
reverses the order in which the #shows appear on the screen for me. So for me the enabling text must be
after the first line so when it actually displays it comes first. Most others trying this code won't be on
Achaea (which is one mud which causes this) so I included it before the text as well.

Code:

<class name="tester" id="4012">
  <trigger priority="38730" case="true" regex="true" id="3877">
    <pattern>^Beginning List</pattern>
    <trigger case="true" regex="true">
      <pattern>^(?:[A-Z][a-z]+\|)+[A-Z][a-z]+$</pattern>
    </trigger>
  </trigger>
  <alias name="test" id="3966">
    <value>#show Beginning List
#say Laergon|Ivan|Posthuman|Thaipan|Pynamani|Buckthorn|Khaseem|Stoph|Carri|Soul|Akash|Cianni|Decado|Ice|Ravirrh|Dinonicus|Derk|Baldazar|Mazion|Nexlar|Dekkar|Monoxide|Lauwe|Lorac|Brena|Feyth|Grimm|Candide|Tam|Jarrel|Fingal|Danith|Brinn|Kalypso|Magnangemon|Locus|Lothiac|Nuthril|Nalimus|Robert|Garuth|Varin|Crius|Hrimfaxi|Ester|Anu|Ziel|Murrin|Miagorme|Santar|Aldair|Raxxus|Hrekka|Tongi|Lonelyte|Jant|Cosmo|Silo|Skyfire|Merka|Karmia|Lycaris|Peshtar|Azreal|Calis|Meridius|Oliver|Thalobane|August|Aoi|Falgon|Calhoun|Azor|Jarik|Shardeus|Nallika|Lothair|Dashel|Shakur|Dalamar|Xandor|Xerimor|Muaxl|Auron|Varyan|Xyas|Hwolf|Alpine|Deladan|Sshung|Harold|Xanador|Clemlee|Nuitari|Shilo|Pheonox|Andelas|Lorias|Silvaria|Dove|Acratin|Querada|Stee|Archimedes|Rinkel|Malaclypse|Daje|Cathor|Kazin|Ashni|Knighthawke|Maalor|Malum|Ramesu|Jasmin|Zelith|Stasha|Khaya|Shanen|Tinsley|Kental|Jack|Coran|Ktulu|Darby|Lipe|Zhalon|Daene|Irontounge|Dralth|Gwethyr|Glyrinn|Pilate|Anaidiana|Dekahdoe|Kevin|Seymour|Sijalwe|Kinarus|Byron|Qwilleran|Gaidel|Guerrand|Eleana|Oznak|Cooper|Vymos|Kia|Shavvakamala|Apoc|Loriel|Jhake|Syanide|Kandor|Bayard|Coto|Xandu|Dwaol|Mint|Angelous|Tanaar|Rhenn|Eowyn|Angelina|Proficy|Tigran|Aerosta|Hele|Chronos|Silvak|Yen|Daimon|Sethroyce|Talrasha|Beldin|Sarevok|Xiao|Dres|Simeon|Faarox|Syrrus|Tybalt|Karr|Severus|Greywolf|Alita|Firyious|Feral|Alaren|Althor|Jerix|Oea|Tiamat|Palla|Aribus|Atrum|Ainly|Qadaaj|Meara|Gwydion|Kaelin|Jakar|Zhuge|Horner|Flow|Darneith|Kabior|Omny|Anarwaen|Valdaerg|Alinoe|Damian|Kullervo|Ravenkiller|Jayden|Grackle|Varlach|Hakaido|Yuwatha|Hayte|Rushido|Nyan|Saryn|Nashkel|Cain|Leigh|Dji|Morteira|Moonfox|Brahmaloka|Amal|Detritus|Lideron|Hergyle|Keram|Thalion|Kyri|Ghia|Neko|Beatrice|Zelfius|Kamdol|Olafo|Andreous|Tynian|Winter|Baatti|Tealthantos|Baine|Akihito|Seraphi|Vladimir|Dan|Nyothran|Falador|Yosi|Myrkanius|Lielrae|Ramoor|Martyr|Tier|Zorlan|Teotwauki|Kakotas|Pandorinar|Deschain|Atrophy|Dshinichi|Dakeyrus|Rho|Goldberry|Jelani|Senoske|Eldest|Miron|Zephyros|Gormo|Teale|Tsao|Thades|Ruhn|Brew|Teg|Orphen|Palanor|Resiak|Zetas|Taers|Erisycthon|Kalanil|Slider|Skweli|Ibayn|Kirrh|Yig|Osis|Lyradil|Ness|Firey|Helmos|Serena|Aladraion|Gerund|Inkarnette|Alastor|Vigile|Jaiko|Rir|Markuth|Ruadan|Rameus|Naiya|Avery|Zulah|Dino|Verrucht|Hoffryn|Infamy|Onishi|Tenevriel|Destar|Moraine|Ishmar|Iskla|Aniari|Tesla|Powrr|Delaura|Trevalyan|Demitrex|Asche|Chidori|Rythnin|Mellifluous|Tutaru|Aragor|Kalem|Mat|Draakon|Gaul|Keturah|Vivienne|Ikue|Kateb|Knorrinski|Ashakel|Goran|Roshambo|Dyzanru|Eluned|Chiendo|Erisar|Evadne|Dharke|Vadimuses|Daloc|Glint|Golaes|Rshiktor|Adonis|Kupo|Eredar|Lekker|Nocturn|Aoelithon|Psymon|Galvinene|Iarra|Nogusta|Nooba|Geraint|Rocknar|Allo|Mirita|Glyc|Derylium|Ninni|Celania|Anja|Nyneve|Antonius|Rhaegar|Ladydeath|Treebeard|Sivex|Ellodin|Ceres|Irana|Deckher|Lachlan|Tarea|Lereas|Jedran|Lujan|Ishai|Andras|Sisol|Kirshbia|Flexi|Belzander|Avto|Rynthor|Aureas|Caelia|Toroct|Kato|Dassa|Basalasck|Kalosiuisen|Woodrow|Lokke|Slig|Yarantan|Rahal|Palanomar|Sergei|Riashain|Diolor|Xellan|Glerian|Kiet|Dralian|Arakuth|Tajir|Latus|Glen|Dymue|Innate|Kabraxis|Choronik|Firgin|Eviscer|Zeya|Hangetsuu|Floralei|Torain|Thralin|Shuman|Sabiru|Eika|Wua|Reesho|Wesleyan|Sunamon|Tsunami|Neoptolemus|Aretar|Acara|Narcissus|Pazalu|Timux|Valath|Dornsha|Turles|Trelian|Hathrael|Halios|Arithorn|Darntosk|Rewyn|Rafe|Marshall|Manu|Aista|Doc|Euronymous|Ulaw|Yaotzin|Zamora|Meri|Silas|Deator|Kerrilynn|Deeva|Dunav|Saadya|Connavar|Karlyt|Ogrim|Kahwi|Crunk|Muradin|Kishpa|Taraus|Najara|Gwilym|Khan|Umbreatum|Celtic|Profit|Pip|Kairuni|Pottage|Derte|Capernicus|Kyishi|Xavius|Osek|Hiei|Xinner|Marfan|Boudreaux|Akarin|Militis|Jhonny|Valak|Cavendish|Payne|Kerek|Asteroth|Serinde|Blizzard|Zidayn|Hoth|Sulocco|Malagant|Icraa|Khaz|Xumi|Ragle|Zaoria|Braids|Dannyl|Calamiddes|Elresse|Nakoruru|Opalene|Duane|Rhoslyn|Eriatarka|Jaz|Laroi|Daos|Gishin|Toguro|Kotyonok|Artaure|Saella|Ivaldir|Laden|Kroanes|Acar|Ashden|Zeran|Agrot|Torun|Voldrix|Cecille|Seldin|Aila|Faerum|Drinine|Fen|Quezacotl|Hieyoko|Ograch|Dontarion|Faolain|Laverna|Jaxle|Masjos|Tyra|Gorlasintan|Dasius|Dramata|Anamoly|Mazirak|Iluvatar|Kynes|Eremito|Salos|Agle|Marcel|Relgar|Hermione|Thalamir|Kisa|Zenui|Runa|Meleah|Platonus|Jefferson|Runei|Dreas|Serhan|Brimir|Allysitia|Trenzol|Nevlusti|Crux|Syralis|Rallentando|Finamor|Hastanu|Chakan|Sarah|Ashena|Meliok|Cambreed|Ethos|Sierra|Apofis|Brawkus|Swishowski|Cypra|Nitrile|Nahaj|Garyn|Rhyst|Cuber|Hallis|Thorpe|Lusien|Belkarr|Tarathiel|Savhira|Nikkou|Meilii|Oron|Xethros|Jahann|Shinevkin|Nikki|Risas|Saria|Destin|Ryne|Shalishaska|Actomedias|Laorir|Faladis|Aaseth|Cingo|Qwindor|Sturrm|Elazul|Nuitar|Gormur|Ghamsu|Matti|Kerrigana|Arzoc|Latch|Aralec|Carissa|Karech|Enthin|Neuroi|Quan|Nitsuja|Xorot|Voi|Innis|Tamyrin|Pawlie|Narcissa|Lylos|Cornugon|Sona|Dovalia|Mardraeus|Gurido|Grimlocke|Spane|Liri|Kinjin|Nollie|Voy|Zurthin|Willson|Isiliodor|Amirah|Donilus|Eltiris|Stubby|Draekar|Achimrst|Ankara|Annaul|Mithros|Nurtek|Amrosia|Fano|Sorcha|Riplakish|Akon|Fanniya|Rabid|Hesa|Relleka|Zerk|Sead|Malcore|Soleil|Viakana|Elecia|Vaan|Ernam|Hideyoshi|Jayle|Xash|Eldin|Austere|Azmarith|Naisar|Kolej|Flonne|Daes|Phae|Virre|Keasbey|Endarch|Alraz|Griffinus|Omari|Teresina
#show Beginning List
</value>
  </alias>
</class>
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5187

PostPosted: Sat Mar 22, 2008 12:34 am   
 
I am seeing the crash, and got an address for it. It is inside the PCRE.dll so I will find some time this weekend to see if I can figure where and what it is.
This might not be something I can fix, but if it is I will report it to the author of the PCRE and make a correction for our immediate usage.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5187

PostPosted: Sun Mar 23, 2008 2:36 pm   
 
I finished tracing through all this. The problem causing a crash was a stack overflow. The specific compile
options for the PCRE are to use the stack for backtracing and recursions for greater speed. Your test line
and pattern caused enough backtracing and recursion to generate the error. Increasing the stack size on
my test app properly corrected this and allowed the pattern to match. I would suggest that as to the proper
fix.

Zugg might also choose to lower limit from 10,000,000 that is used to stop a stack overflow. That can be
done without changing the existing dll. Most likely it would be good to do both fixes.

I will send Zugg an updated file that provides an default adjustment to this, with some more info.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
ReedN
Wizard


Joined: 04 Jan 2006
Posts: 1279
Location: Portland, Oregon

PostPosted: Sun Mar 23, 2008 3:59 pm   
 
Awesome! Great job, really, a diagnosis and a fix to boot!
Reply with quote
oldguy2
Wizard


Joined: 17 Jun 2006
Posts: 1201

PostPosted: Tue Mar 25, 2008 5:56 am   
 
What the heck is that Reed your enemies list? Did you enemy everyone in Achaea? lol
Reply with quote
ReedN
Wizard


Joined: 04 Jan 2006
Posts: 1279
Location: Portland, Oregon

PostPosted: Tue Mar 25, 2008 6:25 am   
 
Enemy list for my city.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net