PlaneShift

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category
  • Assigned To
    Trymm
    Mike Gist
  • Operating System
  • Severity High
  • Priority
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes 1
  • Private
Attached to Project: PlaneShift
Opened by Mrokii - 01.08.2008
Last edited by Mrokii - 01.12.2008

FS#2056 - Client crashing on PPC Mac when loading OjaRoad2

I have either crashes half-way when the Ojaroad2-map is loaded (the progress bar is filled to 1/3) or with a message saying “loading region failed”. In the latter case the progress-bar is filled completely.

With the help of Caarrie and others I have made a gdb-output also:

http://pastebin.ca/1090228

the problem occurs on an iMac G4, 1GHz, 2GB RAM with a GeForce4 MX (64 MB)

I have tried to load the Oja-map itself (the town) and it works. But whenever I try to enter the Ojaroad2-map or load the game with a character already on that map, the crash happens

The task depends upon
ID Project Summary Priority Severity Assigned To Progress
2091 PlaneShift  FS#2091 - Game Crash on Mac  Medium
100%
2245 PlaneShift  FS#2245 - Client crashes at certain portals  High
100%
2306 PlaneShift  FS#2306 - Ojaroad1 crash  Medium
100%
2445 PlaneShift  FS#2445 - PlaneShift crashes as soon as I join  Critical
100%
Closed by  Mrokii
01.12.2008 08:20
Reason for closing:  
Additional comments about closing:  

The most actual maps (0.4.03) seem to work.

Caarrie commented on 01.08.2008 22:38

assigning to several devs that know about macs and/or cs to take a look at this as we have determined it is a crash in CS

Mrokii commented on 01.08.2008 22:38

actually, the progress-bar is filled to about 50% in the first case (when the client crashes without the “loading region failed”-message)

Dajoji commented on 01.08.2008 22:57

In my experience, the “loading region failed” message only appears in some cases. Other times, the client just shuts down unexpectedly. In any case, I can’t enter BDroad1, BDroad2, Gugrontid, Ojaroad1, Ojaroad2, the Magic Shop, or East Hydlaa.

Luckily, I can /teleport.

Caarrie commented on 01.08.2008 23:00

just so it is known Mrokii is on 10.5 and dajoji is on 10.3.9 if that makes any difference as they are 2 seperate clients.

Mrokii commented on 02.08.2008 16:57

Okay, I updated cs to revision 30670 (received: “data/config-plugins/gldrivers.xml”)

using “jam libs plugins cs-config walktest” showed:
…patience… …patience… …patience… …found 3064 target(s)…

so the issue obviously still persists in r30670

Mrokii commented on 04.08.2008 16:06

I am not sure if that is expressed clearly enough, so just to make sure that so far the most significant (if only) similarity for all those that experience that bug is that they use PPC-Macs.

Henrik Baasch commented on 05.08.2008 10:00

This sounds like FS 1628, see my comments on that bugreport (which is still uncomfirmed 050Aug08) I’m on PPC G5 10.5.4

Caarrie commented on 01.10.2008 12:05

i have an intel macbook and i have no issues, according to the dev that will look into fixing this it is a ppc issue not a MAC issue.

Trymm commented on 29.11.2008 11:27

The following patch to CS 1.4:r31627 should solve the problem. I hope it will be merged into CS-1.4 soon so that we can use a stock CS-release also on ppc-based machines. Please test and close if it works.

Index: plugins/csparser/services/renderbuffer.cpp
===================================================================
--- plugins/csparser/services/renderbuffer.cpp  (revision 31627)
+++ plugins/csparser/services/renderbuffer.cpp  (working copy)
@@ -885,8 +885,11 @@
 
   virtual size_t GetSize() const
   {
-    return csRenderBufferComponentSizes[header->compType] 
-      * header->elementCount * header->compCount;
+    if (IsEdited()) 
+      return GetWrappedBuffer()->GetSize(); 
+    else 
+      return csRenderBufferComponentSizes[header->compType]  
+        * csLittleEndian::Convert (header->elementCount) * header->compCount;
   }
 
   virtual size_t GetStride() const 
@@ -1082,7 +1085,7 @@
   // Buffer data is in little endian format, floats in IEEE, need to convert...
   csRef<iDataBuffer> newData;
   newData.AttachNew (new CS::DataBuffer<> (headerSize + totalSize));
-  memcpy (newData->GetData(), header, sizeof (headerSize));
+  memcpy (newData->GetData(), header, headerSize);
   void* src = buf->GetData() + headerSize;
   void* dst = newData->GetData() + headerSize;
Project Manager
Lanarel commented on 29.11.2008 11:34

I cleaned up a bit by deleting some reports about the other map problems or those that we now know are not relevant to solving this, or give redundant information. Thanks to Graham, Tobyn, Rachel, and oriten for taking the time to report though.

Graham Darling commented on 30.11.2008 01:27

I am by no means a professional programmer, but if I understand correctly, Trymm’s changes above have now been made on Revision 31648 of CS-1.4 dated November 29 that has just come out (http://crystal.svn.sourceforge.net/viewvc/crystal?view=rev&revision=31648), and I can perform the requested test by re-compiling and running the PlaneShift source code (as per http://www.yliakum.com/psdocs/index.php?page=4) that now includes this new version of plugins/csparser/services/renderbuffer.cpp on my mac, and seeing if the error I previously reported is still there?

Caarrie commented on 30.11.2008 02:23

Yes you can do the above given you have a ppc mac and use ps stable revision 2425 or you can not connect to laanx.

Graham Darling commented on 01.12.2008 23:17

Now seems to be fixed in 0.4.03 - with this update I can now run my character through that region without crashing the client.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing