Opened 9 years ago

Closed 8 years ago

#445 closed defect (wontfix)

Traceback when executing a long select command

Reported by: Scooter Morris Owned by: Conrad Huang
Priority: blocker Milestone:
Component: Core Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Crashed when issuing the following REST command:

sel #1/A:81|#1/A:102|#1/A:245|#1/A:107|#1/A:290|#1/A:252|#1/A:354|#1/A:99|#1/A:270|#1/A:69|#1/A:74|#1/A:103|#1/A:190|#1/A:215|#1/A:112|#1/A:184|#1/A:219|#1/A:127|#1/A:287|#1/A:323|#1/A:286|#1/A:266|#1/A:276|#1/A:342|#1/A:165|#1/A:118|#1/A:150|#1/A:173|#1/A:133|#1/A:222|#1/A:231|#1/A:233|#1/A:281|#1/A:182|#1/A:65|#1/A:333|#1/A:120|#1/A:96|#1/A:87|#1/A:119|#1/A:328|#1/A:54|#1/A:128|#1/A:299|#1/A:163|#1/A:272|#1/A:265|#1/A:254|#1/A:132|#1/A:124|#1/A:126|#1/A:140|#1/A:55|#1/A:180|#1/A:238|#1/A:237|#1/A:117|#1/A:114|#1/A:313|#1/A:337|#1/A:226|#1/A:164|#1/A:175|#1/A:129|#1/A:211|#1/A:90|#1/A:66|#1/A:178|#1/A:137|#1/A:116|#1/A:138|#1/A:167|#1/A:338|#1/A:257|#1/A:264|#1/A:322|#1/A:300|#1/A:348|#1/A:188|#1/A:329|#1/A:189|#1/A:62|#1/A:200|#1/A:351|#1/A:359|#1/A:262|#1/A:204|#1/A:106|#1/A:196|#1/A:153|#1/A:98|#1/A:95|#1/A:147|#1/A:220|#1/A:250|#1/A:157|#1/A:139|#1/A:84|#1/A:41|#1/A:292|#1/A:40|#1/A:291|#1/A:203|#1/A:52|#1/A:261|#1/A:75|#1/A:202|#1/A:213|#1/A:160|#1/A:228|#1/A:185|#1/A:253|#1/A:85|#1/A:246|#1/A:45|#1/A:234|#1/A:179|#1/A:60|#1/A:353|#1/A:249|#1/A:177|#1/A:56|#1/A:312|#1/A:303|#1/A:136|#1/A:197|#1/A:77|#1/A:44|#1/A:101|#1/A:73|#1/A:47|#1/A:100|#1/A:311|#1/A:144|#1/A:183|#1/A:218|#1/A:57|#1/A:275|#1/A:327|#1/A:50|#1/A:363|#1/A:296|#1/A:162|#1/A:320|#1/A:240|#1/A:239|#1/A:130|#1/A:347|#1/A:86|#1/A:76|#1/A:360|#1/A:356|#1/A:97|#1/A:172|#1/A:217|#1/A:152|#1/A:51|#1/A:111|#1/A:314|#1/A:166|#1/A:53|#1/A:58|#1/A:208|#1/A:122|#1/A:331|#1/A:330|#1/A:221|#1/A:341|#1/A:88|#1/A:358|#1/A:92|#1/A:186|#1/A:59|#1/A:191|#1/A:145|#1/A:247|#1/A:94|#1/A:332|#1/A:141|#1/A:159|#1/A:91|#1/A:64|#1/A:156|#1/A:187|#1/A:39|#1/A:294|#1/A:70|#1/A:236|#1/A:36|#1/A:802|#1/A:201|#1/A:227|#1/A:289|#1/A:78|#1/A:355|#1/A:248|#1/A:251|#1/A:82|#1/A:79|#1/A:154|#1/A:195|#1/A:801|#1/A:123|#1/A:357|#1/A:149|#1/A:198|#1/A:309|#1/A:224|#1/A:901|#1/A:143|#1/A:170|#1/A:207|#1/A:146|#1/A:230|#1/A:229|#1/A:104|#1/A:142|#1/A:194|#1/A:161|#1/A:193|#1/A:346|#1/A:168|#1/A:169|#1/A:293|#1/A:131|#1/A:158|#1/A:192|#1/A:49|#1/A:317|#1/A:319|#1/A:148|#1/A:216|#1/A:93|#1/A:181|#1/A:67|#1/A:235|#1/A:206|#1/A:171|#1/A:223|#1/A:135|#1/A:344|#1/A:155|#1/A:105|#1/A:225|#1/A:210|#1/A:209|#1/A:361|#1/A:115|#1/A:277|#1/A:285|#1/A:38|#1/A:199|#1/A:349|#1/A:205|#1/A:134|#1/A:232|#1/A:295|#1/A:301|#1/A:298|#1/A:305|#1/A:280|#1/A:352|#1/A:304|#1/A:350|#1/A:326|#1/A:282|#1/A:176|#1/A:255|#1/A:268|#1/A:43|#1/A:362|#1/A:308|#1/A:340|#1/A:259|#1/A:63|#1/A:279|#1/A:283|#1/A:256|#1/A:263|#1/A:174|#1/A:271|#1/A:321|#1/A:269|#1/A:306|#1/A:267|#1/A:273|#1/A:258|#1/A:89|#1/A:288|#1/A:113|#1/A:71|#1/A:278|#1/A:345|#1/A:325|#1/A:284|#1/A:35|#1/A:48|#1/A:316|#1/A:310|#1/A:80|#1/A:343|#1/A:42|#1/A:302|#1/A:900|#1/A:212|#1/A:214|#1/A:72|#1/A:244|#1/A:243|#1/A:324|#1/A:297|#1/A:334|#1/A:83|#1/A:242|#1/A:241|#1/A:37|#1/A:307|#1/A:68|#1/A:315|#1/A:108|#1/A:274|#1/A:339|#1/A:151|#1/A:336|#1/A:335|#1/A:46|#1/A:318|#1/A:109|#1/A:260|#1/A:61|#1/A:121|#1/A:125|#1/A:110

Attachments (1)

foo (514.3 KB ) - added by Scooter Morris 9 years ago.

Download all attachments as: .zip

Change History (4)

by Scooter Morris, 9 years ago

Attachment: foo added

comment:1 by Eric Pettersen, 9 years ago

Component: UnassignedCore

comment:2 by Eric Pettersen, 9 years ago

Owner: set to Conrad Huang
Status: newassigned

comment:3 by Conrad Huang, 8 years ago

Resolution: wontfix
Status: assignedclosed

The atom specifier parser uses tail recursion for the | and & operations. An atomspec that uses a lot of these operators can hit the maximum recursion limit. Unfortunately, grako does not support left recursion. Development on grako has stopped, but the follow-on, "tatsu", is supposed to support left recursion. In the mean time, an easy workaround in this case is to remove the | from the atomspec since the meaning is the same with or without the |.

If this comes up again, we can see if moving to tatsu is an easy/viable solution.

Note: See TracTickets for help on using tickets.