|
|
|
I'd love to see some of the limitations reconsidered or removed. Look at llHTTPRequest(): the limitation system on that function is much more reasonable, allowing a small amount of bursting but capping calls when things get unreasonable.
That said, I'm pretty sure that the grey-goo fence actually works. There was a dark period lasting a few months that happened a few years ago, when grey goo attacks got really "popular". Now, they're pretty rare. Is this because griefers got bored, or because the grey goo fence works? OMG. What is grey-goo and how do I find an official position on it? I've just spent 2 weeks trying to find out why my XML project is running sooooo slow and searching brought me here.
The project works OK but my XML packets are taking random times between 15 seconds to over a minute. Don't tell me that this is deliberate and my project is down the drain? Perhaps some warnings in the Wikis would be polite and save noobs like me a lot of time and expense - hard $US for a web site to handle the project!!! There must be some solution or are we too much of a minority? Suppose instead of breaking abusive behavior abilities (and thus crippling the environment for honest users) there were better abuse detection and correction mechanisms.
For example, if a script starts rapidly spawning copies, an alarm goes off somewhere in Linden Lab central, and someone investigates. If it is on an estate, the alarm could go to estate managers, as well. If it is on my property, let me know by IM or email. Better alarms, better detection, and better correction tools would be better than arbitrary restrictions. It's our world, after all 8-) There has to be a better way.
Actually, I have to agree that the delays have been effective in combating the griefing abuse.
I also appreciate that while there are many better solutions to the XML-RPC abuse problem than doing the delay lobotomy, there are thousands of higher priority projects ahead of this so the chance of getting a better solution is very long term. BUT 30 second+ delays are UNREASONABLE and kill legitimate projects along with the griefers. Rather than the original ZERO delay, one or two seconds of delay will still curb the griefing results but allow legitimate uses. PLEASE - I did not discover this UNDISCLOSED delay until after 3 weeks of scripting and work on this project. It would be a simple task on the next rolling restart to change than delay back to a sane length. PLEASE Changed from NEW FEATURE to BUG.
1. This is an existing function that is failing about 25% of the time, not a new feature. Repeating undelivered messages only compounds the communication bandwidth load and increases accumulated delays to many minutes. Please set the XML-RPC delays back to sane levels of a second or two to deter griefing and restore these XML-RPC functions. I'm changing the title of this bug back to its original purpose. If you think there are specific bugs causing particular functionality to fail, please create your own bug report. This report is to request that LL completely remove all script delays.
No problem Deanfred, but it is not going to happen. The delays are not going away.
Most of the delays are going to be permanent and until more complex policing method is in place, and with priorities the way they are, it could take years. Our only hope if we're stuck with them is to get them reduced to sane levels. This would be a minor edit and has a much better chance of implementation. The XML-RPC delays running up to a minute and more are outlandish and constitute a bug by causing errors since the Internet XML-RPC response time-out is shorter than some of the script delays. I was hoping to get better attention by converting it to a bug. I assume that updates have lower priority. The XML-RPC delays are not intentional, there's another bug for them.
Do you have a reference or link to the bug report? I couldn't find one.
I don't know if that is good news or bad - an intentional delay introduced in response to the "grey goo" would be easy to correct. A bug may have to wait longer to get attention. I'm kinda hijacking this bug. A little. I think it would be better to simply focus on getting rid of simplistic delays. You probably weren't around during the major grid attacks last year. The gray-goo fence is there for a very good reason, and it works.
I think that a system of throttles, similar to what is on HTTPRequest is something that Linden Lab will accept. I doubt your bug, as it was written, would fly. Please consider this compromise. We need to be realistic and take Linden Lab's needs into account here. We can't just ask for a free-for-all, delays were added for a reason, they are just a very bad solution to the problem. My vote on more intelligent throttling.
Current delays and limitations encourage... actually, require scripters to resort to hacking instead of clean programming. This both makes code more prone to bugs, makes maintenance harder, slows down sims, and results in legacy code which either breaks once the platform gets upgraded, or worse, limits the way in which it does. In any case, the LSL is currently the only programming language I know about which intentionally limits the functionality to achieve better security. This might work so far, but needs to change. I don't think anybody expects this to change overnight and without a lot of thought, but I sure do hope delays are not here to stay. In my opinion, the scripts should be considered innocent until proven guilty, and delays should be introduced only after the script does a lot of potentially troublesome actions in a small period of time - but not before. The system as implemented now is not working. I seriously doubt that it was "designed" to have delays that exceed the XML time-outs and fail completely 30% of the time. I also feel that a bug repair will get it higher priority than a wish list item.
The horrible unreliability of XML-RPC is a completely separate issue from this one. This issue is talking about purposeful delays imposed by the LSL runtime environment after making calls to certain functions like llInstantMessage() [2 seconds], llLoadURL() [10 seconds], etc. More info on all known delays here:
http://lslwiki.net/lslwiki/wakka.php?wakka=ScriptDelay The problem with XML-RPC is definitely not a purposeful delay. It's just that that system hasn't scaled very well as more and more scripts have started using XML-RPC. There's an issue for that: So when I say that the system is working as designed, I mean that the enforced short delays listed in my first link above are definitely working as LL intended them to... we just want to change their minds about the need for purposeful script delays. Changed back to feature. Ann's request about XML RPC is not a forced delay, but is caused by communication problems, and is unrelated to this.
The problem is simply the question "how to share the limited server resources between the users". The current implementation of delays is not safe (users can work around it at the expensive of complex multitasking), not fair (more scripts inside the application give you a bigger share), and not resource-effective (you don't get the performance even if there are unused server resources). A better solution to protect the server would be to use user-resource counter: Fair share: Performance effective: Reproduction of this was rather difficult. Try as I might, I could not find any function or action which initiated the silly_wall() event.
Ok, in all seriousness, I think it's worth noting that the Grey Goo fence is the primary defense against griefing, these delays are meant more as a defense against unintentionally bad scripts. Obviously script threading can bypass most of these delays, but the idea is that script threading requires intentional desire to bypass these delays and run these functions in sequence at that faster rate. Adding in delays prevents someone from accidentally including one of these functions in a for or while loop, or somewhere else where it might accidentally be triggered too quickly. Replacing script delays with throttling might actually be worse, in some respects. Script delays allow scripters to anticipate the timing of certain functions and events. Ironically, for all the talk of policies that favor "honest" scripters over griefers (or my greater fear, incompetent scripters), throttling might actually be worse than script delays. A good scripter will work with the script delays to make a product that works in a consistent and predictable manner. Throttling would create a situation where the scripter knows that his product will work in a certain manner up to a point, but one that is sort of floating (a floating point? ok ok, bad computer joke) and imprecise. Script delays can generally be more reliable that throttles, which should only be used when absolutely necessary (sound throttling, for instance, is something absolutely necessary, but even then we've seen what happened with the first attempt at its implementation recently). Finally, "multithreading" with scripts should not cause a significant amount of excess lag if it is done correctly. The communication between scripts needs to be efficient and correctly parsed. Yes, it is more difficult than if the delays weren't there and threading was unnecessary, but I think that what we're discussing here is more an issue of convenience than necessity. I have no problem with discussing whether some script delay times should be changed, or whether some can be removed, but I think it's a bit silly to say that we ought to eliminate all script delays simply because they are inconvenient. I've seen a lot of LSL programing mistakes over the years. I don't mean the stuff that makes your script not work, I mean the stuff that makes your script two times slower. I would love to have the delays removed or made more sensible... and for some functions LL has done so on request (llBase64ToInteger for example).
I don't think this is a good idea for the reasons that Jahar stated. The reason for a delay is to discourage bad programming. Why not design it so it rewards good programming? You could forgive the delay for time run. Here is what I mean: A call to llSleep would let you pay forwards some amount of time. There would be a cap to the amount of time you could accumulate. Not all of a delay should be forgivable. There should be some portion that the user must pay then. Strife: Wasn't that the way energy was supposed to work?
Jahar you said: "'multithreading' with scripts should not cause a significant amount of excess lag if it is done correctly." This is not true. The LSL scheduler gives something like 0.001-0.003 ms of time to every running script. It doesn't matter if it's Hello, Avatar. Drop 5000 Hello, Avatar scripts in a sim and watch the script performance drop to total crap. So a good scripter is one that uses a minimum number of scripts. The other big drawback is that it creates parallel programming problems that most LSL scripters should not need to face. LSL is supposed to be a simple language. Introducing unnecessary opportunities for race conditions and deadlocks is the opposite of what LSL is supposed to be about. With Mono, we have the opportunity to eliminate all script delays. This may be our only realistic chance to do it for a long time. Mono will already break scripts that rely on LSL being slow. Eliminating script delays at the same time will not cause excessive additional problems. Gigs: In a way it was yes, except that was for physics. As long as your physical object wasn't doing anything taxing, it would regenerate it's energy pool. Once it started doing something taxing, it would eat that energy. Energy worked on the object level, what I was suggesting would work on the script level.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I think you would be best Campioning the easing of specific restrictions, rather than removing them across the board.