Jump to content

Bones Outlander

Resident
  • Posts

    24
  • Joined

  • Last visited

Reputation

6 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've just returned from 3 weeks overseas, but it looks like my update server started receiving requests again on 27th December. So not sure what was broken, but it seems to be fine again now.
  2. Is that just a matter of changing the URL in the LSL script? If so, then yes I have tried with https://
  3. Disabling Yoast makes no difference, I still get a 404 Page not found error. (See attached entry from my WordPress logs.) If I click on the link in the logs, the URL opens fine, it's only the HTTP Get for SL that gets the 404. I'm sure it's probably a WordPress issue, I just need to find a way around it somehow. Although it is odd that it used to work and just stopped recently.
  4. No, that is the correct domain. I'm hosting the file on a website I own/manage.
  5. Hi, I use this PHP script (found in the script library years ago) hosted on my internet hosting service to provide the current URL for my in-world update server. <?php $answer = "7a3c8787-5e71-a19f-a1b9-7958c8fc898c"; $xml = '<?xml version="1.0" encoding="ISO-8859-1"?>|' . strval($answer) . '|'; header('Content-type: text/xml'); echo($xml); ?> And I call this via these specific line of LSL code in my objects. string outgoing_url = "http://www.lccb.org.au/bonesdesigns/avi-hud/update-relay.php"; kManualUpdateReq = llHTTPRequest(outgoing_url, [HTTP_METHOD, "GET"], ""); If I access the update-relay.php URL via a web browser on my desktop I get this response from the server: <?xml version="1.0" encoding="ISO-8859-1"?>|7a3c8787-5e71-a19f-a1b9-7958c8fc898c| Which is exactly what I'm expecting, BUT when my objects access the same URL from SL using the code above I get this returned: <!doctype html> <html lang="en-AU"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="http://gmpg.org/xfn/11"> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <meta name='robots' content='noindex, follow' /> <!-- This site is optimized with the Yoast SEO plugin v19.13 - https://yoast.com/wordpress/plugins/seo/ --> <title>Page not found - LCCB</title> <meta property="og:locale" content="en_US" /> <meta property="og:title" content="Page not found - LCCB" /> <meta property="og:site_name" content="LCCB" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://www.lccb.org.au/#website","url":"https://www.lccb.org.au/","name":"LCCB","description":"The Lane Cove Concert Band","publisher":{"@id":"https://www.lccb.org.au/#organization"},"potentialAction":[{"@type": This was all working fine up until recently (I don't know the exact time it broke I'm afraid), but can anybody suggest what might be going on please? Thanks Bones
  6. I'm trying to work out the best way of generating a string of a variable length of a single characters (let's say an *). So basically I want to pass a variable into a function and that function returns a string of that number of characters . So if i passed in 10 my string would be "**********" In some languages str="*" * 8 would return "********", but not LSL. Is the only way to loop around adding one character each time, or is there a more efficient way of dong this? Thanks
  7. I've been running the script with the 12000 memory limit now for 8 hours and it seems pretty stable. The available memory reported with the hello message fluctuates between around 11500 and 14300 (depending on the number of recorded lines being reported) but memory doesn't seem to be getting any lower over time, so that's a good sign.
  8. Thanks Wulfie, I think you may well be right, I'd better start reading up on Linkset Data, although there are bound to be a few "undocumented features" in that too!
  9. Changing the timer back to .075 and I do get a crash. [19:29] History Tester 6k: started [19:29] History Tester 6k: Hello from the History Server Script, Free Memory: 49678 / Lines recorded: 99 [19:29] History Tester 6k: Hello from the History Server Script, Free Memory: 40278 / Lines recorded: 199 [19:29] History Tester 6k: Hello from the History Server Script, Free Memory: 30878 / Lines recorded: 299 [19:30] History Tester 6k: Hello from the History Server Script, Free Memory: 21160 / Lines recorded: 399 [19:30] Avi-HUD+ 3.05: Tamara status changed to online on Sat 11/12/2022 at 7:30 pm. Previous logout was on Sat 11/12/2022 at 4:15 am. (15 hours and 14 minutes ago) [19:30] History Tester 6k: prune start:5932 561 [19:30] History Tester 6k: prune end:306 541 [19:30] History Tester 6k: prune start:106 542 [19:30] History Tester 6k: prune end:1788 522 [19:30] History Tester 6k: prune start:1788 523 [19:30] History Tester 6k: prune end:3270 503 [19:30] History Tester 6k: prune start:3270 504 [19:30] History Tester 6k: prune end:12944 484 [19:30] History Tester 6k: Hello from the History Server Script, Free Memory: 8094 / Lines recorded: 538 [19:30] History Tester 6k: prune start:5932 561 [19:30] History Tester 6k: prune end:306 541 [19:30] History Tester 6k: prune start:106 542 [19:30] History Tester 6k: prune end:1788 522 [19:30] History Tester 6k: prune start:1788 523 [19:30] History Tester 6k: prune end:3270 503 [19:30] History Tester 6k: prune start:3270 504 [19:30] History Tester 6k: prune end:12944 484 [19:30] History Tester 6k: Hello from the History Server Script, Free Memory: 9974 / Lines recorded: 518 [19:30] History Tester 6k: prune start:5932 561 And it crashed at the prune. Adding in a llSleep (I tried .001, .5 and 1) immediately after the llSetMemoryLimit(memlimit) line seems to stop the crash at the .075 timer value, but it still does 4 prunes before the memory is released back over 6000 bytes. I was expecting the sleep to allow the memory to free up in one pass.
  10. OK, so this is interesting .... I think. I ran with the 6000 threshold, removing 79 entries in a prune, and adding 1 entry per second. I don't get a crash, but it runs several prunes before the memory frees up. In fact the memory free drops from 5932 to 306 after removing 20 lines (80 entries)! Here are my two scripts // main script integer toggle = FALSE; integer count; default { touch_start(integer total_number) { if(toggle = !toggle) { llOwnerSay("started"); count = 0; llSetTimerEvent(1.0); } else { llOwnerSay("stopped"); llSetTimerEvent(0.0); llMessageLinked(LINK_THIS, 99, "", ""); } } timer() { count++; if(count%100 ==0) { llMessageLinked(LINK_THIS, 99, "", ""); } llMessageLinked(LINK_THIS, 2, "Fenix Eldritch,1,"+(string)llGetUnixTime(), ""); } } // History Logger list lHistory; integer iZoneOffset; integer count; default { state_entry() { } link_message(integer sender_num, integer num, string str, key id) { if (num == 2){ if ( llGetFreeMemory() < 6000) { count = llGetListLength(lHistory)/4; llOwnerSay("prune start:"+(string)llGetFreeMemory()+" "+(string)count); lHistory = llDeleteSubList(lHistory,0,79); // Remove the oldest entry from history integer memlimit = llGetMemoryLimit(); // how much are we allowed? llSetMemoryLimit(memlimit-1); // reduce by 1 to force GC llSetMemoryLimit(memlimit); // set it back count = llGetListLength(lHistory)/4; llOwnerSay("prune end:"+(string)llGetFreeMemory()+" "+(string)count); } string sLoginLogout; list lTemp = llParseString2List(str,[","],[]); integer iTimestamp=llGetUnixTime() + iZoneOffset; string sVar1 = llList2String(lTemp,0); // Avatar Name integer iVar2 = llList2Integer(lTemp,1); // Status (1=online 0=offline) integer iPrevUnixTime = llList2Integer(lTemp,2) + iZoneOffset; // Last login/logout adjusted to Time Zone lHistory = lHistory + [iTimestamp] + [sVar1] + [iVar2] + [iPrevUnixTime]; count = llGetListLength(lHistory)/4; llSetText((string)count,<1,1,1>,1.0); } else if (num == 11){ // Receive Zone Time Offset in seconds, including DST adjustment iZoneOffset = (integer)str; } else if (num==99){ // Receive Hello request (to test which scripts have died) integer iLength = llGetListLength(lHistory)/4; llOwnerSay("Hello from the History Server Script, Free Memory: " +(string)llGetFreeMemory() + " / Lines recorded: " + (string)iLength); } } } And the output [17:04] History Tester 6k: started [17:06] History Tester 6k: Hello from the History Server Script, Free Memory: 49678 / Lines recorded: 99 [17:08] History Tester 6k: Hello from the History Server Script, Free Memory: 40278 / Lines recorded: 199 [17:09] History Tester 6k: Hello from the History Server Script, Free Memory: 30878 / Lines recorded: 299 [17:11] History Tester 6k: Hello from the History Server Script, Free Memory: 21160 / Lines recorded: 399 [17:13] History Tester 6k: Hello from the History Server Script, Free Memory: 11760 / Lines recorded: 499 [17:14] History Tester 6k: prune start:5932 561 [17:14] History Tester 6k: prune end:306 541 [17:14] History Tester 6k: prune start:106 542 [17:14] History Tester 6k: prune end:1788 522 [17:14] History Tester 6k: prune start:1788 523 [17:14] History Tester 6k: prune end:3270 503 [17:14] History Tester 6k: prune start:3270 504 [17:14] History Tester 6k: prune end:12944 484 [17:14] History Tester 6k: Hello from the History Server Script, Free Memory: 9880 / Lines recorded: 519 [17:15] History Tester 6k: prune start:5932 561 [17:15] History Tester 6k: prune end:306 541 [17:15] History Tester 6k: prune start:106 542 [17:15] History Tester 6k: prune end:1788 522 [17:15] History Tester 6k: prune start:1788 523 [17:15] History Tester 6k: prune end:3270 503 [17:15] History Tester 6k: prune start:3270 504 [17:15] History Tester 6k: prune end:12944 484 [17:16] History Tester 6k: Hello from the History Server Script, Free Memory: 8000 / Lines recorded: 539 [17:16] History Tester 6k: prune start:5932 561 [17:16] History Tester 6k: prune end:306 541 [17:16] History Tester 6k: prune start:106 542 [17:16] History Tester 6k: prune end:1788 522 [17:16] History Tester 6k: prune start:1788 523 [17:16] History Tester 6k: prune end:3270 503 [17:16] History Tester 6k: prune start:3270 504 [17:16] History Tester 6k: prune end:12944 484 [17:18] History Tester 6k: Hello from the History Server Script, Free Memory: 6120 / Lines recorded: 559 [17:18] History Tester 6k: prune start:5932 561 [17:18] History Tester 6k: prune end:306 541 [17:18] History Tester 6k: prune start:106 542 [17:18] History Tester 6k: prune end:1788 522 [17:18] History Tester 6k: prune start:1788 523 [17:18] History Tester 6k: prune end:3270 503 [17:18] History Tester 6k: prune start:3270 504 [17:18] History Tester 6k: prune end:12944 484 [17:19] History Tester 6k: prune start:5932 561 [17:19] History Tester 6k: prune end:306 541 [17:19] History Tester 6k: prune start:106 542 [17:19] History Tester 6k: prune end:1788 522 [17:19] History Tester 6k: prune start:1788 523 [17:19] History Tester 6k: prune end:3270 503 [17:19] History Tester 6k: prune start:3270 504 [17:19] History Tester 6k: prune end:12944 484 [17:19] History Tester 6k: Hello from the History Server Script, Free Memory: 11760 / Lines recorded: 499 [17:20] History Tester 6k: prune start:5932 561 [17:20] History Tester 6k: prune end:306 541 [17:20] History Tester 6k: prune start:106 542 [17:20] History Tester 6k: prune end:1788 522 [17:20] History Tester 6k: prune start:1788 523 [17:20] History Tester 6k: prune end:3270 503 [17:20] History Tester 6k: prune start:3270 504 [17:20] History Tester 6k: prune end:12944 484 [17:20] History Tester 6k: stopped [17:20] History Tester 6k: Hello from the History Server Script, Free Memory: 12512 / Lines recorded: 491
  11. I was using the line as per your message above: lHistory = llDeleteSubList(lHistory,0,79); I think this is also related to the speed in which the data is coming through, maybe if the logger script is having to buffer a few lines it overflows before the pruning can happen.
  12. Thank you everybody for your responses. @Fenix Eldritchthank you so much for going to the trouble of testing this. I have setup the same test as you, but even deleting 20 list entries at a time I get a crash at the 6000 limit, and even at 10000. I had to go to 12000 before the crash stopped. At 12000 I can delete 1 list entry at a time without a crash, but get your point that that is a forcing a lot of cleaning up, so will stick with the 20 entries. I'll do some more testing here and see if I find anything else useful.
  13. Hi, I have a history logging script that receives data (Avatar name, Status - a 0 or 1 and a UnixTime Timestamp) from another script via a link_message and stores the data in a list. Once llGetFreeMemory reports less that 6000 bytes, for each new data message received I delete the oldest entry from the list. But for some reason the script slowly keeps eating up memory until I get a stack heap error. I know all link_messages get processed by all scripts, but any messages I pass to scripts are less than 500 bytes so I've allowed 6000 bytes as a buffer. I recently added the llSetMemoryLimit lines to try to force a memory cleanup but that didn't resolve the issue and eventually I get a stack-heap error (can take several days or even weeks). Here is a simplified version of my script that exhibits the issue, am I doing something wrong in here somewhere? Many thanks Bones // History Logger list lHistory; integer iZoneOffset; default { state_entry() { } link_message(integer sender_num, integer num, string str, key id) { if (num == 2){ if ( llGetFreeMemory() < 6000) { lHistory = llDeleteSubList(lHistory,0,3); // Remove the oldest entry from history integer memlimit = llGetMemoryLimit(); // how much are we allowed? llSetMemoryLimit(memlimit-1); // reduce by 1 to force GC llSetMemoryLimit(memlimit); // set it back } list lTemp = llParseString2List(str,[","],[]); integer iTimestamp=llGetUnixTime() + iZoneOffset; string sVar1 = llList2String(lTemp,0); // Avatar Name integer iVar2 = llList2Integer(lTemp,1); // Status (1=online 0=offline) integer iPrevUnixTime = llList2Integer(lTemp,2) + iZoneOffset; // Last login/logout adjusted to Time Zone lHistory = lHistory + [iTimestamp] + [sVar1] + [iVar2] + [iPrevUnixTime]; } else if (num == 11){ // Receive Zone Time Offset in seconds, including DST adjustment iZoneOffset = (integer)str; } else if (num==99){ // Receive Hello request (to test which scripts have died) integer iLength = llGetListLength(lHistory)/4; llOwnerSay("Hello from the History Server Script, Free Memory: " +(string)llGetFreeMemory() + " / Lines recorded: " + (string)iLength); } } }
  14. Hmm, I take it all back! I can't send from Outlook again, even using the format above but if I reply to an email the script sends me in Outlook it goes through, go figure! Does anybody use outlook to send emails into SL successfully?
  15. Thanks Qie, You are correct it works from the Gmail web client/account, I only tested was using a Gmail account sending via the Windows 10 mail client and also from an outlook.com account. EDIT: The formats below don't seem to work on Outlook at all now, so not sure what's going on! So it seems Microsoft doesn't like the address 00e432f6-fa97-5889-90c5-a3b7c2b3895a@lsl.secondlife.com So I tested this address from a Microsoft account/email client and this DOES work. Email Tester <00e432f6-fa97-5889-90c5-a3b7c2b3895a@lsl.secondlife.com> But this DOES NOT work <00e432f6-fa97-5889-90c5-a3b7c2b3895a@lsl.secondlife.com> So it seems to be safe, use an address that has the format Name <key@lsl.secondlife.com> format as this worked with Gmail and Microsoft accounts/clients.
×
×
  • Create New...