Jump to content

FragFrog

Members
  • Posts

    159
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

FragFrog's Achievements

Advanced Member

Advanced Member (3/3)

0

Reputation

  1. I think your estimate for the PS3 is a bit low - I find sources indicating it's more like 400GFLOPs. However, AMD's HemlockXT 5970 GPU for example rates about 4TFLOPS, roughly ten times as fast. But I very much doubt you can use any of that power with Mangos' current design, even if you could get it to run. Might be interesting to see if it can be optimized for CUDA though, too bad none of our servers have a decent GPU
  2. Mangos: s0096 SD2: 1767 TBCDB: 0.2.2 Getting a lot of crashes at the moment - about once every half hour at the moment. Crash log is rather empty though: Revision: * * 0096 * Date 8:8:2010. Time 9:21 //===================================================== *** Hardware *** Processor: Intel(R) Core(TM)2 CPU E8400 @ 3.00GHz Number Of Processors: 2 Physical Memory: 4181744 KB (Available: 1037760 KB) Commit Charge Limit: 4194303 KB *** Operation System *** Microsoft Windows Server 2003 Standard Edition Service Pack 2 (Version 5.2, Build 3790) //===================================================== Exception code: C0000005 ACCESS_VIOLATION Any ideas / fixes would be most helpfull.
  3. Seeing a lot of these, all the same. Could be custom patch related though - mangos 0.12 branch, just before s0001. Revision: * * 8569 181ae079809eb3c9fc919931834ed2b929c00bbd Date 5:8:2010. Time 14:13 //===================================================== *** Hardware *** Processor: Intel(R) Core(TM)2 CPU E8400 @ 3.00GHz Number Of Processors: 2 Physical Memory: 4181744 KB (Available: 1587804 KB) Commit Charge Limit: 4194303 KB *** Operation System *** Microsoft Windows Server 2003 Standard Edition Service Pack 2 (Version 5.2, Build 3790) //===================================================== Exception code: C0000005 ACCESS_VIOLATION Fault address: 004EB6F2 01:000EA6F2 C:\\MaNGOS\\mangosd.exe Registers: EAX:0792BA40 EBX:B83470B0 ECX:94420100 EDX:00000000 ESI:00000000 EDI:0086BB30 CS:EIP:001B:004EB6F2 SS:ESP:0023:0792B910 EBP:0792BA78 DS:0023 ES:0023 FS:003B GS:0000 Flags:00010246 Call stack: Address Frame Function SourceFile 004EB6F2 00000000 ?SendObjectUpdates@Map@@AAEXXZ+D2 004E0F77 00000000 ?Update@Map@@UAEXABI@Z+657 004E78D3 00000000 ?Update@InstanceMap@@UAEXABI@Z+13 00806E9E 00000000 ?HandleGMSurveySubmit@WorldSession@@QAEXAAVWorldPacket@@@Z+58E 00673368 00000000 ?GetEmotesTextStore@@YAPBV?$DBCStorage@UEmotesTextEntry@@@@XZ+2C188 0061E452 00000000 ??0CreatureEventAI@@QAE@ABV0@@Z+5392 00455D7E 00000000 ?getSource@?$Reference@V?$GridRefManager@VCorpse@@@@VCorpse@@@@QBEPAVCorpse@@XZ+3B44E 0086BB49 00000000 ?GetFloatDefault@Config@@QAEMPBDM@Z+E09 00291864 00000000 ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74 78543433 00000000 _endthreadex+44 785434C7 00000000 _endthreadex+D8 77E6482F 00000000 GetModuleHandleA+DF
  4. If it helps: I'm currently testing one of the latest pre-tbc-revision cores, haven't had a crash in the past few days yet on our testserver running a 32bit windows compile. Of course, that is only with a dozen testers, a full server might be a bit less stable.
  5. More even, I believe they have special BG servers as well and independant instance servers also. I have worked with MuOnline, a very old MMO, for a few years - it had 12 seperate programs to run to get a server up, almost all of them could be on a seperate machine. A bit more work to setup, but the advantage was pretty clear: a crash in one part just meant a few people got kicked out of an instance, not a whole server having to restart. Quite helped with multithreading as well. AH slowness is as far as I know related to the way item search used to be implemented. Has not been an issue for us lately, I would guess the problem is solved. At any rate moving the AH won't help much, you'd have to move the database to another server (or of course use a seperate database for AH, that might work and is probably fairly easy to accomplish).
  6. I am not sure, but I think you cannot compile VC++ projects with Netbeans. There is however a linux build included in the source as well, so you can probably import the makefile or w/e it uses, get Cygwin / MinGW or alike for a compiler and see where it goes from there. Really though, if you are working under windows, Visual Studio Express edition is free and in my opinion a lot better than Netbeans (which I work with for my JAVA apps). Not to mention the linux builds tend to break from time to time. VS is fairly easy to get the hang off, and since Mangos does not sport a GUI anyway you won't have to worry about GUI editing (which I admit Netbeans does rather well).
  7. As far as I know only those from the console. No commands that would require a selected character (like .levelup, .modify, etcetera) are enabled through SOAP, and those are the same you cannot use through the console. If you don't know whether you need it, as a rule of thumb, you probably don't.
  8. What I meant was you could try/catch the entire function whenever you call it. Catching directly after the error is thrown and then sending an error as return value really is a bit superflous
  9. You could use the SOAP interface to do a .pdump write / .character delete / .pdump load. That would effectively recreate the character, though what you hope to achieve by this is beyond me.
  10. A tip for future reference: $f = fopen("soaperror.log", "a+"); fwrite($f, $errorstring); fclose($f); This can be rewritten in a single statement using the file_put_contents method: file_put_contents('soaperror.log', $errorstring, FILE_APPEND); However, limit your file-writes to a minimum. I strongly suggest disabling file-logging as well with debug off, imagine a bigger script with a dozen methods like this, even a simple pageview would mean a dozen (slow!) filewrites - you don't want that. You're better off building a logging method (or using a framework with one) that writes out all log entries at the end of a script in one call. Also, be careful with underscores in front of your function names. A double underscore is used for magic methods (like __get(), __construct(), etcetera), using a single underscore is a bug waiting to happen. Last but not least, why put the try / catch inside the function? What you're doing now is catching an error if it occurs, and then manually add an error to your output - so why do this at all? Just let the exception propogate and let calling methods deal with it. That way you can always simply return the SOAPresult string without having to worry about boolean return types Overall though there is already a good example of how to use procedural PHP code to deal with the SOAP interface in the source (/contrib/soap/example.php). If you want to add to that, an object oriented example would be a lot more useful in my opinion.
  11. http://github.com/mangos/mangos/commit/2bc93d6583492513f0cf4e64e88b2c0faf8a08ef Just tested, the update fixes it. Thanks Vladimir!
  12. To be honest, I am not sure what I do is the best way, but patches tend to be easier for me then making a new branch and all that (of course, I primarily use SVN, experienced GiT users will probably find branching and merging easier). To make a patch (I always use the command line for this, and this assumes you already have a local copy checked out): First, after modifying the core I check the status: Z:\\Mangos\\TBC\\mangos-10160-sd2-1737>git status # On branch 243 # Your branch is ahead of 'origin/mangos-0.12' by 1 commit. # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: src/shared/ServiceWin32.cpp # modified: src/shared/ServiceWin32.h # no changes added to commit (use "git add" and/or "git commit -a") This is from my current development repository. As you can see, there are a few changed files. I add those to the next commit: Z:\\Mangos\\TBC\\mangos-10160-sd2-1737>git add src/shared/ServiceWin32.cpp Z:\\Mangos\\TBC\\mangos-10160-sd2-1737>git add src/shared/ServiceWin32.h Now I can commit the files I just added. The -m modifier allows me to enter a message for this commit, which will be used as name for the patch file. Z:\\Mangos\\TBC\\mangos-10160-sd2-1737>git commit -m "Allow custom service name" [243]: created 14ad865: "Allow custom service name" 2 files changed, 28 insertions(+), 0 deletions(-) Allright, files are added, committed, now all we need to do is make a patch file out of them: Z:\\Mangos\\TBC\\mangos-10160-sd2-1737>git format-patch -1 0001-Allow-custom-service-name.patch Et voila, I now have a file '0001-Allow-custom-service-name.patch' with the changes required. To apply it on a clean checkout I can just hit 'git apply [filename]' and it will apply this patch. As said, this is what works for me, but I do believe GiT is more commonly used in a branching / merging fashion where you create a (local) repository with your own changes and simply merge updates from the official repositories into it. This is probably easier as well, although it might be a bit tricky when you want to exclude a patch at some point (for example, when something gets fixed that you used to have a hacky patch for, you'll not want your hack but the official fix). I am sure one of the more experienced GiT users can explain that in more detail
  13. In that case you can either create your own local branch and merge it with the official repositories, or create patches and reapply those after updating. That's how I do it, I generally spend a few hours after each update applying patches, compiling, testing and adjusting patches where necessary. Most tend to go allright, but with over a dozen patches there's generally one or two that break with any major update. Once we get a good working version on test it's comitted to an SVN repository with binaries, so on the live server we can simply do an update to get the latest version. We have used FTP in the past, but it's generally not a bad idea to be able to rollback the core to a previous state without having to recompile and all that. It's also the reason we don't update more often than once a month or so, preparing and testing an update simply takes too much time to do it every week
  14. That is only possible if you create a virtual private network and bind mangos to the local IP of that network. Binding means selecting which IP to use locally, it does not mean only that IP can connect to it! You can of course use a firewall to limit access to only that address, otherwise no dice.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use