EVE Online is launched with affinity to a single CPU core

Discussion of Inner Space

Moderators: Lavish Software Team, Moderators

Post Reply
Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

EVE Online is launched with affinity to a single CPU core

Post by Snape » Thu Jun 06, 2013 12:27 pm

There is a huge content-patch in EVE Online, which added/changed a lot of features. Looks like it has affected IS as well. From now on, it launches EVE windows with affinity to CPU 0 only. When there are some 6 windows launched, core 0 is overloaded (obviously), while there rest cores are idle. This seems to be an IS-related bug, as launching EVE manually produces a window with affinity to all processors. Any chance you fix it anytime soon?

Lax
Owner
Posts: 6634
Joined: Fri Jun 18, 2004 6:08 pm

Post by Lax » Thu Jun 06, 2013 1:00 pm

I'll look into a proper "fix", but in the meantime, feel free to use the Proc command to assign affinity.

ISBoxer users are completely unaffected because ISBoxer does this for you...

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Thu Jun 06, 2013 1:40 pm

I've added the following:

proc 1 on
proc 2 on
proc 3 on
proc 4 on

to my .iss file launched from startup sequence. Didn't help at all... Is there any help on this command, apart from http://www.lavishsoft.com/wiki/index.ph ... :Processor ?

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Thu Jun 06, 2013 1:47 pm

Nvm, its effect is just not instant :) It worked, thank you!

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Sat Jun 08, 2013 9:42 am

Not sure if this problem is related to the previous one, but at least it didn't appear before...

Failed to install D:\Programs\InnerSpace\Lavish.InnerSpace.dll to the Global Assembly Cache. HRESULT=0x80070005
GetLastError=2
.NET initialization error: Could not install required Assemblies to the Global Assembly Cache.

Happens when I try to load the bot from a startup sequence .iss-file. Didn't happen before Odyssey content-patch of EVE / before I had to start to play with affinity.

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Thu Jan 30, 2014 4:53 pm

The latest patch have brought the latter error back (failed to install blah blah). Basically, every auto-restart of a window with no human intervention means hangup. No delays help, too... though, manual repeating of the command does help.

Some kind of conditional check should help, I think (like "dotnet prog_name;wait 50;IF (!ApplicationIsActive("prog_name")) dotnet prog_name"). Is there something alike in lavish scripts?

P.S. Oh, and btw, thanks for fixing the affinity bug!

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Sat Mar 01, 2014 6:12 pm

Lax! THis ".NET initialization error: Could not install required Assemblies to the Global Assembly Cache" just disappears and reappears every now and then! Could you tell us at least some ETA for fixing it, or at least for adding some evil hack to avoid it? I mean, heck, the whole farm gets restarted by schedule and each window fails to load the bot, staying in this state indefinitely! What should we do - put enough efforts into finishing the version of our bot which doesn't require InnerSpace at all?

Lax
Owner
Posts: 6634
Joined: Fri Jun 18, 2004 6:08 pm

Post by Lax » Sat Mar 01, 2014 6:56 pm

If I didn't know any better I'd say it sounds like you're in the wrong payment class and demanding special attention.

There's a multitude of ways you could load it, why does it need to be loaded "in a startup sequence .iss"

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Mon Mar 03, 2014 5:22 pm

Lax wrote:If I didn't know any better I'd say it sounds like you're in the wrong payment class and demanding special attention.
I've though bugfixing is included in any payment class... guess I was wrong.
Lax wrote:There's a multitude of ways you could load it, why does it need to be loaded "in a startup sequence .iss"
That's the only way I've found so far to launch multiple commands/applications after game has started. What are other ones?

Lax
Owner
Posts: 6634
Joined: Fri Jun 18, 2004 6:08 pm

Post by Lax » Mon Mar 03, 2014 5:39 pm

Lax wrote:
If I didn't know any better I'd say it sounds like you're in the wrong payment class and demanding special attention.

I've though bugfixing is included in any payment class... guess I was wrong.
It's a bug that currently only you have reported, affecting only someone whos usage sounds like is currently violating the personal non-commercial use policy. That has nothing to do with "bugfixing", it has to do with you violating terms of the software license, and making demands as if I owe you.

That's the only way I've found so far to launch multiple commands/applications after game has started. What are other ones?
Send it a command from the uplink?

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Wed Mar 05, 2014 3:23 pm

Lax wrote:It's a bug that currently only you have reported, affecting only someone whos usage sounds like is currently violating the personal non-commercial use policy. That has nothing to do with "bugfixing", it has to do with you violating terms of the software license, and making demands as if I owe you.
Sometimes I wonder: when did you visit your home page for the last time? Are you aware of the fact that there are exactly zero links to ANY policies? The same could be said about the forum. The only agreements were made during account creation. It was like 3 years ago for me, but I remember restriction for 5 PCs/VMs max, from a single location. And yes, I've never break these restrictions. Moreover, I'm not even using my second comp anymore as CCP ban accounts faster than I recreate them to populate even a single PC (and every account creation costs real money, just in case you didn't know).

Though, it doesn't matter to you, I guess. It's your right to enforce any service level you see most fitting upon any account; so I guess the only thing a user can do is to find ways to avoid using your products (which I'm going to consider now even stronger than before). Until then, let's go your way. Now that you've forced me to pay 5x more than before, without asking me for agreement... is it now my right to demand from you priority for fixing this goddamn bug already? I mean, hell, it's not like I've encountered it just yesterday, and came here to tell you that you owe me fixes until tomorrow! Instead, I was reporting it for WEEKS, and waiting patiently. So, I repeat my question now: when are you going to fix it?
Lax wrote:
That's the only way I've found so far to launch multiple commands/applications after game has started. What are other ones?
Send it a command from the uplink?
I could have played EVE manually as well. Though, ughm, wait... why would I need InnerSpace, then?

To make things clear: the script has to be launched automatically. So far I don't see any ways to do it except for .iss file launched from startup sequence. In case there are other ways, I'm all ears. In case there are none - can you add some setting, at tthe very least, which would mean for the system NOT to stop the script upon the first exception encountered? This way, I would just run "dotnet something; wait 50; dotnet something". I guess it would be no harm, since in case first one gets launched correctly, the second one would just do nothing.

Lax
Owner
Posts: 6634
Joined: Fri Jun 18, 2004 6:08 pm

Post by Lax » Wed Mar 05, 2014 5:43 pm

Sometimes I wonder: when did you visit your home page for the last time? Are you aware of the fact that there are exactly zero links to ANY policies? The same could be said about the forum. The only agreements were made during account creation. It was like 3 years ago for me, but I remember restriction for 5 PCs/VMs max, from a single location. And yes, I've never break these restrictions. Moreover, I'm not even using my second comp anymore as CCP ban accounts faster than I recreate them to populate even a single PC (and every account creation costs real money, just in case you didn't know).
The personal usage restriction and policy link is presented to you
1. Every time before you log in at https://www.lavishsoft.com/account/ (see "Before I create an account . . . . Will my purchase be restricted?" under the login boxes)
2. Every time before you paid every 90 days on the personal account version of https://www.lavishsoft.com/account/purchase (right underneath the payment options)

But, with proper selective reading I can see how you would completely miss all of that.
Send it a command from the uplink?

I could have played EVE manually as well. Though, ughm, wait... why would I need InnerSpace, then?
You're not aware that you can run a script or .net program in the uplink? Even one that launches the game instances for you, waits for it to load, and sends it a command? It's not even complicated to do.

Open "EVE Online" "Eve Online Default Profile"
wait...
Relay is1 dotnet something


Here's another thing you can do just through your startup sequence. Use "timedcommand" to delay the command it so it's not executing during the time you say it fails. e.g. "timedcommand 5 dotnet whatever" will do it after half a second.


You could also run a script that runs your dotnet command for you, checks if the program is running successfully, and reissues the command if needed.


Lastly, I've made a change to the development build of IS where it should ignore the GAC install failure and possibly continue to load your program. The DLL should already be installed to the GAC, so it should work around the issue (but still produce the failure output). To use the development build, right click IS and select Patcher, tick "Download development (test) patches" and then close and restart Inner Space to let it patch up.

Snape
GamingTools Subscriber
Posts: 28
Joined: Wed Jul 20, 2011 6:02 am

Post by Snape » Thu Mar 06, 2014 5:25 am

Lax wrote:The personal usage restriction and policy link is presented to you
1. Every time before you log in at https://www.lavishsoft.com/account/ (see "Before I create an account . . . . Will my purchase be restricted?" under the login boxes)
2. Every time before you paid every 90 days on the personal account version of https://www.lavishsoft.com/account/purchase (right underneath the payment options)
1. With help of cookies one just stays logged in for years, you know...
2. That's how it looks for me:

Image

I.e. there is nothing "right underneath", as you can see. So it's not quite about selective reading... dunno, maybe it's browser-related. In either case, don't you think it would be logical to just add a big bold link to something like "Rules and policies" on the main page?
Lax wrote:You're not aware that you can run a script or .net program in the uplink? Even one that launches the game instances for you, waits for it to load, and sends it a command? It's not even complicated to do.

Open "EVE Online" "Eve Online Default Profile"
wait...
Relay is1 dotnet something

Here's another thing you can do just through your startup sequence. Use "timedcommand" to delay the command it so it's not executing during the time you say it fails. e.g. "timedcommand 5 dotnet whatever" will do it after half a second.

You could also run a script that runs your dotnet command for you, checks if the program is running successfully, and reissues the command if needed.
Well, it's a bit more complicated than that... Once per day I launch bots manually. In this case - yes, everything can be launched easily. Though, when some force majeur (like disconnect, UI stuck etc) happens, bot has to restart itself automatically. Currently I do it by using "uplink exec open "${Game}" "${Profile}"". Reason: there could be multiple instances of (EVE+bot inside it) in RAM at the same time, so no external script can help, everything has to be handled from inside (as instances would look identical to any outside prog/script - it would be impossible to determine which of them has to be restarted). So the given instance of the bot launches this command, waits a bit and self-destructs. Everything I have left after that is game profile. It looks like this:

Code: Select all

			<Set Name="EVE Online 01" GUID="1610612741">
				<Setting Name="Game">EVE Online</Setting>
				<Setting Name="Executable">exefile.exe</Setting>
				<Setting Name="Parameters" />
				<Setting Name="Path">D&#58;\Games\EVE\bin</Setting>
				<Setting Name="Force Monitor">Application Controlled</Setting>
				<Set Name="Startup Sequence" GUID="1610612761">
					<Setting Name="load">run 01.iss</Setting>
				</Set>
				<Set Name="Pre-Startup Sequence" GUID="1610613271">
				</Set>
				<Setting Name="Preload Executable">some_prog.exe</Setting>
				<Setting Name="Preload Parameters">someparameter</Setting>
				<Setting Name="Preload Path">D&#58;\Programs\InnerSpace</Setting>
			</Set>
Example of the script itself:

Code: Select all

function main&#40;&#41;
&#123;
wait 100
WindowText "sometext"
Windowsize 1032x795
WindowPos 640,0
console toggle
wait 25
dotnet botname
&#125;
Timedcommand isn't going to help for real: EVE instance might take 10 seconds or rather a minute to start, depending on CPU load and inet connection load. The script HAS to be launched once EVE instance has fully loaded, not before. Then, increasing delays doesn't help either. I've tried to increase both "wait" delays more and more - it just doesn't help, dotnet command fails anyway. Restarting IS doesn't help either, the only thing that helps is rebooting the system completely. Well, helps until another stupid EVE patch gets released, that is...

Taking into account everything said, things that are still unclear to me:

1) WHERE should such a script be placed? For example, may I add several <Setting Name="load">something</Setting> blocks to the game profile? Generally speaking, is there any manual/wiki page concerning what I may and what I may not change in the game profile?
2) Just to specify terms: in case it should be not an .iss script but rather something else - WHAT should it be?
Lax wrote:Lastly, I've made a change to the development build of IS where it should ignore the GAC install failure and possibly continue to load your program. The DLL should already be installed to the GAC, so it should work around the issue (but still produce the failure output). To use the development build, right click IS and select Patcher, tick "Download development (test) patches" and then close and restart Inner Space to let it patch up.
Ahha, finally! Thank you, gotta test that! Hopefully, it solves the problem without any changes to scripts...

Lax
Owner
Posts: 6634
Joined: Fri Jun 18, 2004 6:08 pm

Post by Lax » Thu Mar 06, 2014 7:00 am

I.e. there is nothing "right underneath", as you can see.
That's how it looks for you now because your account is no longer personal. You'll notice that I said ... "Every time before you paid every 90 days on the personal account version of"
The script HAS to be launched once EVE instance has fully loaded, not before.
The Startup Sequence already enforces that. The Startup Sequence, by definition, executes only when the game has actually rendered its first frame. (Subsequently the PRE-startup sequence happens before the game has done anything at all.) TimedCommand would make it happen AFTER that time. I gave this suggestion because you said running it from the startup sequence causes problems, and TimedCommand would separate it from the startup sequence. If it fails by running your script with TimedCommand then it's shown to not be related to the startup sequence.
1) WHERE should such a script be placed? For example, may I add several <Setting Name="load">something</Setting> blocks to the game profile? Generally speaking, is there any manual/wiki page concerning what I may and what I may not change in the game profile?
There's a configuration interface built into Inner Space which has all of the options that you can adjust in your Game Profile, including a startup sequence editor which allows you to enter multiple commands in the startup sequence. (i.e. yes you can have multiple entries as long as you dont give them the same Name, and you can see what it should look like by using the interface instead of manually editing XML.) There's nothing that you "may not change" in a game profile.

You already have a script though I wouldn't say you need a second one for this purpose

Post Reply