-1.5 C
United States of America
Monday, November 25, 2024

Lengthy Applescript inflicting crash with segmentation fault


I’ve an Applescript script that I run as a batch in opposition to a photograph modifying app (Seize One). It’s auto-generated by one other app and creates good collections out of a database of key phrases. It’s fairly lengthy and over time turns into longer and longer as a result of extra key phrases are added now and again. For the time being it is about 50k strains and 5MB lengthy. It is fairly gradual to run (a number of hours), however that is one other matter (in any case I run it in a single day a couple of occasions per yr). I have been working it with out issues since a few years.

The script is principally an unrolled loop of about 3.600 iterations, every one does principally the identical issues over completely different knowledge. It has grown fairly a bit lately as a result of I added a couple of strains to compute estimated completion time. Now it appears it by no means completes, as a result of at a sure level (kind of 2/3 of the script, not at all times on the identical level) a couple of unusual error messages are printed on the console (an excerpt right here):

Catalog 2024-11-23T00:57:01.192162Capture One acquired an error: Can’t make doc into sort integer.4-1700
make
group, Seize One acquired an error: Can’t make progress whole items into sort textual content., title, -1700
Catalog 2024-11-23T00:57:01.192162
«class prdt», Seize One acquired an error: Can’t make make into sort textual content., variety, -1700
group

and shortly after a segmentation fault happens. I consider there’s some type of reminiscence corruption, so the console output is meaningless. Inspecting the block of code the place the script crashes exhibits no points, and if I run the identical script once more the crash would possibly occur a bit earlier or later, so I the code just isn’t related.

The script is run by command line with osascript.

Is there any limitation to the lenght of an Applescript? Concepts? Workarounds? I anticipate that splitting the script or resuming from the purpose it stopped just isn’t a simple choice for me, for numerous causes associated to Seize One APIs.

Thanks.

PS I’ve mentioned I do not suppose code is related, anyway that is an iteration:

    attempt
      set progress textual content to "Importing: Workflow/workflow:printed/workflow:printed#twitter-weekly"
      inform _workflow_published to make assortment with properties {variety:good album, title:"workflow:printed#twitter-weekly", guidelines:"<?xml model="1.0" encoding="UTF-8"?><MatchOperator Sort="AND"><Situation Enabled="YES"><Key>IB_S_CONTENT_KEYWORDS</Key><Operator>6</Operator><Criterion>workflow:printed#twitter-weekly</Criterion></Situation></MatchOperator>"}
      set progress accomplished items to 3670
      set ___elapsedtime to (present date) - ___basetime
      set ___ct to ___elapsedtime * 0.000272
      set ___completionTime to "" & (___ct div 60) & " minutes to finish"
      set ___eta to  time string of ((present date) + ___ct)
      set progress further textual content to "3670 / 3671 — 99% " & ___completionTime & " " & ___eta & ""
    on error errorMessage quantity errorNumber
      log "errorMessage: " & errorMessage & ", errorNumber: " & errorNumber
      log ">>>> key phrase: Workflow/workflow:printed/workflow:printed#twitter-weekly"
    finish attempt

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles