packp3d_dev and pdeploy_dev

Ah, progress it seems! :slight_smile:

I’m building a Windows version now (I’m afraid that I’d deleted the previouis versions)–I’ll post again once I have a result to report, I intend!

All right, my report:

Changing the value of “per_platform” wherever it appears in that xml file does indeed get me past the relevant error, but the program still doesn’t run (and I did restore that “Test” module, so it shouldn’t be hitting that issue). The log file looks very like that which I had previously when building without “-s”, including the odd white-space at the start of the file.

Here’s the new log, white-space omitted:

Setting working directory: C:\Users\user\AppData\Local\Panda3D\start
Command line: "C:\Program Files (x86)\LevelPrototype\panda3d\cmu_1.9\p3dpythonw.exe" "C:\Program Files (x86)\LevelPrototype/panda3d/cmu_1.9/panda3d.cmu_1.9.win_i386.mf" "000000D0" "000000DC" "0"
notify: onpluginload 
notify: onauth 
notify: ondownloadbegin 
notify: ondownloadcomplete 
notify: onready 
Created splash window 00060912
Loaded image: C:\Program Files (x86)\LevelPrototype/images/download.png
notify: onpythonstop 
finish_instance: 00CF1D08
Assigning 00CF1D08->log_pathname = C:\Users\user\AppData\Local/Panda3D/log/LevelPrototype.log

So, while the per-platform issue does seem to be a stumbling block, it looks as though it’s not the only one… :confused:

Again, it looks as though it’s starting correctly, and then somehow deciding that it’s done.

Yes, that looks like it’s exiting normally. This is the runtime log file; there should be either another log file or, if you ran it from the command line, command-line output from the application itself. Could you post that as well?

One frequent cause of this type of issue is that the run() call is hidden under a name == “main” check, which does not hold in the runtime environment. Please make doubly sure that you have no such check.

I take it that you mean “p3dcore.log”? If so, the relevant log from a recent Linux build (one in which I had set all instances of “per_platform” in the xml file to 0, as suggested, I believe) follows; I don’t recall noticing the file on Windows, but may have just missed it–I can get that version for your tomorrow I believe, if you want it.

Interestingly, I just realised that neither the runtime log nor this one seems to include that driver error that we were seeing previously–I don’t know whether that’s because it’s not getting that far, or because the runtime-distributable being used here has some change that fixes the issue.

One line towards the end strikes me: “application shares main object”–is that a potential issue?

_root_dir = /home/ian/.panda3d, _temp_directory = /tmp/, platform = linux_amd64, host_url = https://runtime-dev.panda3d.org/, verify_contents = 0
api_version = 16
read contents.xml, max_age = 5, expires in 0 s
Supported platforms: linux_amd64
Plugin version: 1.0.4
Plugin distributor: cmu
Core API host URL: https://runtime-dev.panda3d.org/
Core API version: 1.9.0
Core API date: Wed Jun 12 15:43:42 2013

Creating P3DInstance 0x833b10:  console_output="1" auto_start="1"
setting background to download, splash_window = 0
_per_platform for images = 0
Warning! per_platform disagreement for images!
All 8 extracts of images seem good.
report_package_info_ready: images
Done installing images: success = 1
p3d_basename = pdeploy_dev.p3d
send_notify(onpluginload)
p3d trusted
_matches_run_origin = 1
_matches_script_origin = 0
_auto_install = 1, _auto_start = 1, _stop_on_ready = 0
send_notify(onauth)
Migrating panda3d from platform "" to platform "linux_amd64"
_per_platform for panda3d = 0
Warning! per_platform disagreement for panda3d!
All 75 extracts of panda3d seem good.
report_package_info_ready: panda3d
panda3d: asked for seq 1, we have seq 2
morepy: asked for seq 1, we have seq 2
_per_platform for morepy = 0
Warning! per_platform disagreement for morepy!
All 32 extracts of morepy seem good.
report_package_info_ready: morepy
panda3d: asked for seq 1, we have seq 2
Beginning install of 0 packages, total 0 bytes required (32818087 previously downloaded).
send_notify(ondownloadbegin)
send_notify(ondownloadcomplete)
set_wparams: 1 640 480
send_notify(onready)
setting background to launch, splash_window = 0
Search path is /home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
_p3dpython_exe: /home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9/p3dpython
Setting environment:
  XDG_VTNR=7
  SSH_AGENT_PID=1780
  XDG_SESSION_ID=c2
  GPG_AGENT_INFO=/run/user/1000/keyring-RNdlvT/gpg:0:1
  TERM=xterm
  SHELL=/bin/bash
  VTE_VERSION=3406
  CLUTTER_DISABLE_XINPUT=1
  GJS_DEBUG_OUTPUT=stderr
  WINDOWID=52428808
  GNOME_KEYRING_CONTROL=/run/user/1000/keyring-RNdlvT
  GJS_DEBUG_TOPICS=JS ERROR;JS LOG
  GTK_MODULES=overlay-scrollbar
  USER=ian
  LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
  XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
  XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
  SSH_AUTH_SOCK=/run/user/1000/keyring-RNdlvT/ssh
  DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path
  SESSION_MANAGER=local/ian-Satellite-Pro-A300:@/tmp/.ICE-unix/1732,unix/ian-Satellite-Pro-A300:/tmp/.ICE-unix/1732
  XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
  DESKTOP_SESSION=cinnamon
  PWD=/home/ian/Documents/My Game Projects/P3D
  GNOME_KEYRING_PID=1730
  LANG=en_ZA.UTF-8
  GDM_LANG=en_US
  MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path
  GDMSESSION=cinnamon
  CINNAMON_VERSION=2.0.14
  SHLVL=1
  XDG_SEAT=seat0
  HOME=/home/ian
  LANGUAGE=en_ZA:en
  GNOME_DESKTOP_SESSION_ID=this-is-deprecated
  LOGNAME=ian
  XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/usr/local/share/:/usr/share/
  DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ExthvHjxrn,guid=c70f0996f49aa91b94fe86f6548989c1
  LESSOPEN=| /usr/bin/lesspipe %s
  TEXTDOMAIN=im-config
  XDG_RUNTIME_DIR=/run/user/1000
  DISPLAY=:0
  XDG_CURRENT_DESKTOP=GNOME
  LESSCLOSE=/usr/bin/lesspipe %s %s
  TEXTDOMAINDIR=/usr/share/locale/
  COLORTERM=gnome-terminal
  XAUTHORITY=/home/ian/.Xauthority
  _=/usr/bin/panda3d
  PATH=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
  LD_LIBRARY_PATH=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  DYLD_LIBRARY_PATH=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  PYTHONPATH=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  PYTHONHOME=
  PRC_PATH=/home/ian/.panda3d/prc:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  PANDA_PRC_PATH=/home/ian/.panda3d/prc:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9:/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  TEMP=/tmp/
  PANDA3D_ROOT=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9
  MOREPY_ROOT=/home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/morepy/cmu_1.9
Attempting to start python from /home/ian/.panda3d/hosts/runtime-dev.panda3d.org_6c875ad6f852d272/panda3d/cmu_1.9/p3dpython
Not changing working directory.
child still alive after 101 ms
notify: onpluginload 
notify: onauth 
notify: ondownloadbegin 
notify: ondownloadcomplete 
notify: onready 
application shares main object
notify: onpythonload 
notify: onpythonstop 
finish_instance: 0x833b10
Assigning 0x833b10->log_pathname = 
Python process has successfully stopped.
  exited normally, status = 0
Successfully joined thread: 0
P3D_finalize called
counts: 4 1 1 1

I don’t use such checks–it’s something that I never learned (I honestly don’t even know what it’s intended purpose is). Here’s a rough outline of how my “main” file (“GameCore.py”, to which I linked you in PM) is structured, including the “run” command:

from pandac.PandaModules import loadPrcFile, loadPrcFileData
loadPrcFile("Adventuring/game.prc")

# - Panda-related importations, including DirectObject and DirectStart

import os, sys, math, random, types

# - My own importations: external modules like KeyMapper, followed by game-specific modules.

# This is used by GameSaver
@staticmethod
def isSubclass(name, classToCheck):
    if name == "NoneType" or name == "function" or name == "instancemethod":
        return False
    return issubclass(eval(name), classToCheck)

# This class controls the flow of the game, as well as handling events
class GameFramework(DirectObject):
    # - Class code here...

# Let the game begin!
gameFramework = GameFramework()
run()

(I realise that rdb is likely not around as of the time of my posting this, but I’d rather leave it here early than risk forgetting later.)

I have a bit more information, perhaps.

I decided to have a shot at using the latest (as of earlier today, my time) SDK version of Panda from GitHub–which, as has been pointed out, shouldn’t have an effect, but seemed worth trying, and I mention it here just in case it’s relevant–and as a result attempted another build.

This time I noticed something in the output of packp3d_dev. It occurs early, and flashes by very quickly indeed, so I may well have missed it previously; I ended up catching it by redirecting the console output to a text file. Here is the text in question:

There are some missing modules: ['Adventuring.footsteps', 'BinsAndTags', 'Combat', 'Common', 'CommonValues', 'Conversation', 'Cutscene', 'GameObject', 'Inventory', 'Level', 'Menus', 'NPC', 'Navigation', 'OptionsMenu', 'Player', 'Town', 'Translation', 'panda3d.bullet', 'panda3d.core']

“Adventuring.footsteps” is understandable–that’s the result of something being accidentally left in, I believe–but all of the others (presumably including “panda3d.core”) are important–it seems somewhat odd that it’s not finding them.

More oddly, I would expect all of my own modules there to start with “Adventuring.”, as in the case of “footsteps”; a quick search of my code using “BinsAndTags” as an example found only importations with the “Adventuring.” prefix, like so: “from Adventuring.BinsAndTags import *”.

I have seen posts mentioning that the inclusion of “panda3d.core” in such messages is the result of a bug–but I believe that I’ve also seen at least one such indicate that said bug was fixed and would be corrected in the next release–since I’m using a dev. version, would I not perhaps have that fix?

As to my own modules, all of those mentioned should be within the directory given to packp3d–or rather, a subdirectory of that directory. To be specific, I build from a directory (simply named “P3D”) outside of my game’s directory, and point packp3d to the appropriate directory via the “-d” parameter. The hierarchy looks something like this:

  My Game Projects
    |
    |----- P3D (from which I build)
    |
    |----- LevelPrototype (the game directory)
    |              |
    |              |----- Adventuring (in which the above-mentioned modules should be found)

I note that it isn’t complaining about modules placed within the “LevelPrototype” directory, but within their own folders instead of the “Adventuring” folder, such as GameSaver or KeyMapper.

Possibly arguing in part against this is that I attempted a minimal test–albeit asking it for the same dependencies: Bullet, MorePy, and OpenAL–it too crashed shortly after opening a black window–but then I’ve had problems with the runtime on this computer (albeit not properly tested), I think, and the fact that it managed a black window (even if it didn’t show anything else) does seem to indicate that Panda is being found, despite there being a similar message in the output of packp3d_dev during building, albeit only including “panda3d.core” this time, I believe.

So, I think that it’s time to bump this thread, especially given that ninth has reported a similar-seeming issue here.

Has this been looked-into any further?

This is actually the first time I’ve noticed the crash ninth reported - and I’ve been using the Windows 7 x64 build for quite a while. I’ll look into that first.

I’d like to re-open this, as I’m still not managing to produce an installable build. :confused:

I’m still using the versions of packp3d_dev and pdeploy_dev that I was using when I first opened this thread, I believe. I do thus still have the “per-platform” issue, but that’s easily corrected while testing, and I gather that this should be fixed in the versions of packp3d and pdeploy released for 1.9.

I’ve performed a few more experiments using a very simple test-program (all under Ubuntu 13.10), summarised below:

What I’ve been doing:

  • The commands used to build were as follows:
panda3d packp3d_dev.p3d -o CompilationTest.p3d -d ../CompilationTest/ -r morepy -e dat -n ogg

and

panda3d pdeploy_dev.p3d -P linux_amd64 -a ian.eborn -A "Ian Eborn" -s -N "CompilationTest" -v 2 CompilationTest.p3d installer
  • I’ve run packp3d_dev both with and without the “-m” flag; when building without it, I naturally renamed my main (and only) Python file “main.py”.
  • Within the main Python file, I’ve tried placing the code that instantiates and runs the main class both outside of any methods or classes, so that it’s run automatically, and within a function named “main”.

My results thus far:

  • The p3d file itself can be run via the runtime, both from the command-line and by simply double-clicking.
  • The installed version, however, seems to shut down almost immediately, with no apparent errors in the log file.

Finally, I have a question:

Looking at the directory created on installation of my test-program, I don’t see any files that seem to be specific to that program–no “CompilationTest” -.p3d, -.so, or -.mf, for example–which prompts me to wonder whether the problem might not be that my program simply isn’t being included in the installation, and the execution thus having nothing to do after loading Panda and just exiting.

However, I could simply be missing the relevant files. So where should I be looking, and what should I be looking for?

A bit more information, perhaps: I created two builds of the same simple test-program, one using Panda 1.8 and the other using 1.9. Both were Linux-64 builds, and built under Ubuntu 13.10. I then ran both (after fixing the per-platform issue in the 1.9 version’s “contents.xml”) and compared their log files.

To start with, the version built using 1.8 ran successfully, while the version built using 1.9 didn’t.

The log files differ somewhat, naturally–it looks as though 1.9 might produce a bit more output than 1.8, for one thing.

Otherwise, two differences stand out to me:

b
[/b]Towards the beginning, there’s a section that appears to be concerned with checking the status of the various packages (morepy and Panda itself, in this case). The 1.9 version appears to have quite a bit more output here than the 1.8 version (including the warnings about “per_platform disagreement” that I believe have already been mentioned in this thread). However, I’m finding it difficult to tease apart the differences, and don’t know which, if any, are important.

Here’s the relevant section of the log file from the 1.9 version, with a bit of context before and after:

send_notify(onauth)
No longer current: panda3d
read contents.xml, max_age = 5, expires in 0 s
Migrating panda3d from platform "" to platform "linux_amd64"
_per_platform for panda3d = 0
Warning! per_platform disagreement for panda3d!
report_package_info_ready: panda3d
panda3d: asked for seq 2, we have seq 
expiring contents.xml for https://runtime-dev.panda3d.org/
morepy: asked for seq 2, we have seq 
expiring contents.xml for https://runtime-dev.panda3d.org/
_per_platform for morepy = 0
Warning! per_platform disagreement for morepy!
report_package_info_ready: morepy
panda3d: asked for seq 4, we have seq 
expiring contents.xml for https://runtime.panda3d.org/
_per_platform for panda3d = 0
Warning! per_platform disagreement for panda3d!
report_package_info_ready: panda3d
panda3d: asked for seq 2, we have seq 
expiring contents.xml for https://runtime-dev.panda3d.org/
morepy: asked for seq 2, we have seq 
expiring contents.xml for https://runtime-dev.panda3d.org/
Beginning install of 0 packages, total 0 bytes required (43494343 previously downloaded).
send_notify(ondownloadbegin)
send_notify(ondownloadcomplete)

b [/b]
Towards the end of the logs, when–if I read this correctly–the application is being started:
1.8:

notify: ondownloadcomplete 
notify: onready 
application shares main object
notify: onpythonload 
P3DSplashWindow::set_visible(0)
notify: onwindowopen 
notify: onpythonstop 

1.9:

notify: ondownloadcomplete 
notify: onready 
Reading splash file image: /usr/lib/compilationtest/images/download.png
notify: onpythonstop 

where do I get packp3d dev and pdeploy dev?

I believe that I got them from http://runtime-dev.panda3d.org/–however, I don’t see them listed there at the moment; perhaps they’ve been removed.

… Has anyone looked into this recently?

I don’t mean to be a pest by bumping this as I have been, but this issue is somewhat stalling the development of my project, and seems to me like a matter of concern in general–after all, if it’s happening on my machine, it’s possible that there will be other machines on something similar occurs.

Development is stalling because, while I can continue to work, I’m at a stage at which I very much want feedback on my game, which means distributing it to others. (Indeed, I have a test-scenario pretty much ready, I believe.) Specifically, I feel that I’m close to moving on to developing content–actual puzzles, levels, story and so on–but want to test my gameplay and deal with any serious issues before I do so. More generally, having next to no access to external feedback feels like a handicap to me.

I could distribute the .p3d file, I suppose, but outside of the Panda3D community that means asking people to separately download and install the run-time, which I fear may result in fewer people trying the prototype, and thus less feedback. (I’ll confess that I don’t think that I’ve tried the web-player option; it’s not an approach that I tend to favour, personally.) On the other hand, if the installers work for others then I could just build, upload, and hope–but I’m not at all comfortable with distributing builds that I haven’t tested, especially as I have a history of missing small things between development version and distributable build.

Perhaps more worryingly, if this isn’t addressed then this problem might remain until the game’s completion, potentially leaving me with not only the problem of testing my builds, but also that of having an issue present in my game that could cause it to simply fail for some users, with no apparent means of fixing it.

(In case anyone is wondering why I don’t simply develop for Panda 1.8, my project doesn’t work under that version, as it lacks features in its integration of Bullet that my project employs (including the use of bitmasks in filtering at least certain types of collision), if I recall correctly.)

Since I don’t know what’s relevant and what’s not, I’m currently resorting to dumping what results I’m managing to come up with here in the hopes that somewhere amongst them is a clue as to what’s going on.

Speaking of which, another experiment:

This time I compared the log files produced by the .p3d- and installed- versions of the 1.9 build. From what I see, the .p3d version outputs its log to “p3dcore.log”, while the installed version outputs to “.log”, where “” is the name of the game. They do seem to be comparable, but if I’m missing any logging please let me know.

As before, the .p3d version runs, but the installed version does not.

Oddly, while the log files do seem to be comparable, they also differ to a surprising degree, both in content (which is somewhat expected, given that one represents a successful run and the other an unsuccessful run) and in formatting (which seems a little more odd).

Some points that stood out to me:

  • The .p3d version reports a “host_url” of “https://runtime.panda3d.org/”, while the installed version reports “https://runtime-dev.panda3d.org/
    [list]
    [*]The .p3d version does in other places mention “https://runtime-dev.panda3d.org/”, and reports a “Core API version” of “1.9.0”, so I doubt that I’m unwittingly running the .p3d through a 1.8 runtime.
  • Neither version should be downloading anything, as far as I’m aware, so this may not be important.
    [/:m]
    [
    ]The .p3d version gives a “p3d_basename” of “CompilationTest.p3d”–the name of the .p3d file, naturally. On the other hand, the installed version uses the value “compilationtest” (note that the name is entirely in lower-case, and that there is no “.p3d” extension).[/:m]
    [
    ]The .p3d version mentions at various places that “All extracts of seem good”, where “” is a number and “” appears to be a package; I don’t seem to be finding this at all in the installed version.[/:m]
    [
    ]The .p3d version seems to set the window-size to 640x480, while the installed version sets it to 800x600–I presume that there’s a config.prc from which these settings are being taken, but how are they ending up with different values?[/:m]
    [
    ]The installed version prints a line that begins wuth “Reading splash file image:”, while the .p3d version seems to print no such line.[/*:m][/list:u]

All right, I think that I may have chased down the problem, at least in part–but I don’t know what to do about it.

First of all, I note that this doesn’t just affect packp3d and pdeploy–it seems to be more general than that, causing any attempt to run a .p3d file through the newly-built runtime distributable to fail. I’m guessing that I was previously able to run .p3d files as a result of having installed a version of the runtime distributable that didn’t have this issue.

I’ve been tinkering–primarily by adding simple debugging output lines, but occasional commenting-out of lines–with the source code for the runtime/runtime-distributable (I’m honestly not sure of which is running the relevant code, so I’ve been rebuilding both; I imagine that it’s the distributable, however), and seem to have found a likely candidate.

It is, however, entirely possible that I’ve found an issue that I myself introduced somehow.

The proximal cause of the issue seems to be “rt_terminate” being called in “p3dSession.cxx”, thus prompting a halt.

This appears to be a response to a broken XML message being sent to “read_xml” in “binaryXml.cxx”. Specifically, that method is finding the “xnode” returned from “read_xml_node” to be NULL; this appears to be caused by the very first read in “read_xml_node” producing a “gcount” value different to “sizeof(value_length)”–specifically, “gcount” appears to be coming out as 0, which, from what I’ve gathered, indicates that no characters were read.

Now, “read_xml” is called from a few places, but, based on some experimentation, I think that the offending party is “rt_thread_run” in “p3dSession.cxx”. As far as I see, this appears to be happening on the first attempted reading. This would seem to imply a problem with “_pipe_read”, and thus “r_from”–but I fear that I don’t know the system well enough to be confident of what to make of that.

Hmm, if it really is a bug in the binary XML reader, then you could switch over to the regular XML reader by changing “#define DO_BINARY_XML 1” at the top of binaryXml.cxx to “#undef DO_BINARY_XML”.

I would guess that it’s more likely to be some failure condition due to a broken pipe because of an error triggered elsewhere. Is there nothing interesting in the associated log files at all?

It would really help if you just gave me the .p3d files so I could try running it for myself.

All right, I’ve just tried that, and it doesn’t prevent the issue–it just moves the failed read to the “non-binary” code in “read_xml”, which then reports it has unexpectedly reached the end of the file. This seems to conform with the “binary” version reporting a “gcount” of 0: it looks as though it’s receiving no data.

No, I don’t think that the bug is in the reader; rather, think that either a bad XML command is being sent from somewhere, a command is being corrupted or lost along the way, or somehow the pipes are misaligned, causing a command to be lost. I just don’t know what that command is intended to be, or where it’s being sent from.

I’ve posted everything that I’ve noticed in the logs, I’m afraid. :confused: It’s entirely possible that I’ve missed something, of course.

Is there anything in particular that I should look for? It may be that there’s something that I’m passing over, not realising that it’s important.

[edit] But see the edit at the end of the post. [/edit]

At the moment simply running “panda3d packp3d1.9.p3d”, where both panda3d and packp3d1.9.p3d are being built by me from the source code, packp3d1.9.p3d having been copied over to another directory and the command executed from there. (I do realise that packp3d requires arguments, but execution doesn’t seem to be getting far enough for that to be an issue.)

I just tried another experiment: I created an empty file and renamed its extension to “.p3d”, then tried to run that. This time, panda managed to very briefly open a splash/error window, and printed “failed to execute”–which indicates that it’s at least getting somewhere in that case. However, this appears to occur earlier than the spawning of the python run thread, which is where my problem seems to be occurring, so I don’t think that it’s terribly relevant.

[edit]
Actually. hang on: looking again through the output produced when building the runtime-distributable, I see quite a few “missing modules” and “unknown modules”, some of which seem to be xml-related. Could some of those be relevant?

I’m a little dubious, I’ll admit: I recall similar errors being considered to be unconcerning previously, but more saliently, when executing panda3d as described above I do seem to be seeing other pairs of pipes working before we reach the one that’s failing, with XML commands being sent and received, which seems to indicate that the basic functionality works.

Amusingly, one of the “missing modules” is apparently named “idonotexist”–at least it’s truthful! :laughing:

Additionally, looking again at “p3dcore.log”, I noticed the following few lines:

Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml: 0M, 0xc424b0
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml: 100%, 0xc424b0, success = 1
File is incorrect: panda3d.thaumaturge_1.9.linux_amd64.mf
report_package_info_ready: panda3d

Note the “File is incorrect” line–could that be relevant?

No, we don’t use Python modules for writing XML, so that can’t be related. You’d be seeing other errors if that was the case.

“File is incorrect” means that the extract on disk didn’t exist or was invalid. This isn’t necessarily an error. It just means it has to (re-)extract the file.

Could we take a step back for a moment? I’m finding it really difficult to analyze what’s going on here since this thread seems to be about a hundred different things. Let’s take it one step at a time, please.

The problem, if I’m understanding correctly, is that a .p3d file does not run with the runtime, correct? Please tell me the following:

  1. Whether you have been deleting the Runtime directory (on Linux, ~/.panda3d/) to be sure.
  2. Which host_url and distributor you used for building the rtdist and runtime.
  3. The outputs of the commands “panda3d -V” “panda3d -U” and “panda3d -P”
  4. The command-line output of running “panda3d packp3d.p3d -h” without arguments.
  5. Post the log files that appear when you run just that.

Good idea. The reason, I think, that this thread has become so muddled is that this issue has proven rather difficult to pin down.

To answer your questions:

Indeed–although, for the sake of clarity, note that I don’t mean a specific .p3d file, but rather .p3d files in general–or at least, those generated either as part of this distributable or previously by packp3d, presumably using a related distributable.

In general, yes, I believe so–I may have forgotten to do so a few times, but in most of my tests I’ve been deleting all but the “log” folder from /.panda3d/.

–distributor thaumaturge --host file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage

panda3d -V: 1.0.4c
panda3d -U: file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage
panda3d -P: linux_amd64

For the next two questions, I’ll note that I’ve removed most of my debugging output, which was pretty messy, but left in a cleaned-up version of the output that I added to indicate the failed XML read. If you’d like any additional debugging output, just let me know. (I do see that I missed a few bits of debugging output–the line that ends with “<<< Adding packages”, for example.)

Oddly, I got two differing sets of output on two consecutive runs–the log file seemed to suggest that some of the old debugging output was still present somewhere. In both cases I cleared out /.panda3d/ before running, I believe. The following is from the second run, which doesn’t seem to have the old output, but does have the new.

(I’m presuming that I can substitute my “packp3d1.9.p3d” from my distributable build for “packp3d.p3d” above. If not, which packp3d.p3d should I use? A copy from Panda 1.8?)

:downloader: [0x24402f0] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/contents.xml?1431706098 ]
:downloader: [0x24414e0] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/coreapi/linux_amd64/p3d_plugin.so ]
:downloader: [0x2455840] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.xml ]
:downloader: [0x2455840] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml ]
:downloader: [0x2452530] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.mf.pz ]
:downloader: [0x244d1a0] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.xml ]
:downloader: [0x244d1a0] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf.pz ]
Installing Panda3D
:downloader: [0x244d1a0] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.mf.pz ]
Installing Panda3D egg loader
Install complete.
:HostInfo: Downloading contents file [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/contents.xml?1431706111 ]

:downloader: [0x12c43d8] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/contents.xml?1431706111 ]
:HostInfo(warning): Successfully downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/contents.xml?1431706111
:PackageInfo: panda3d downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml
:downloader: [0x12c4958] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml ]
:PackageInfo: Removing linux_amd64/libXext.so.6
:PackageInfo: Removing linux_amd64/libpandaphysics.so
:PackageInfo: Removing linux_amd64/libXrender.so.1
:PackageInfo: Removing linux_amd64/_ssl.x86_64-linux-gnu.so
:PackageInfo: Removing linux_amd64/libXxf86dga.so.1
:PackageInfo: Removing linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml
:PackageInfo: Removing linux_amd64/libCgGL.so
:PackageInfo: Removing linux_amd64/libpandagl.so
:PackageInfo: Removing linux_amd64/libogg.so.0
:PackageInfo: Removing linux_amd64/_vfsimporter.so
:PackageInfo: Removing linux_amd64/libp3dtoolconfig.so
:PackageInfo: Removing linux_amd64/libtinfo.so.5
:PackageInfo: Removing linux_amd64/libpanda.so
:PackageInfo: Removing linux_amd64/libp3direct.so
:PackageInfo: Removing linux_amd64/libfreetype.so.6
:PackageInfo: Removing linux_amd64/libcrypto.so.1.0.0
:PackageInfo: Removing linux_amd64/libz.so.1
:PackageInfo: Removing linux_amd64/libpython2.7.so.1.0
:PackageInfo: Removing linux_amd64/libp3dpython.so
:PackageInfo: Removing linux_amd64/libpandafx.so
:PackageInfo: Removing linux_amd64/libreadline.so.6
:PackageInfo: Removing linux_amd64/libp3tinydisplay.so
:PackageInfo: Removing linux_amd64/p3dpython
:PackageInfo: Removing linux_amd64/resource.x86_64-linux-gnu.so
:PackageInfo: Removing linux_amd64/libvorbis.so.0
:PackageInfo: Removing linux_amd64/readline.x86_64-linux-gnu.so
:PackageInfo: Removing linux_amd64/libXfixes.so.3
:PackageInfo: Removing linux_amd64/libpandaexpress.so
:PackageInfo: Removing linux_amd64/libssl.so.1.0.0
:PackageInfo: Removing linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf
:PackageInfo: Removing linux_amd64/Config.prc
:PackageInfo: Removing linux_amd64/libp3dtool.so
:PackageInfo: Removing linux_amd64/libstdc++.so.6
:PackageInfo: Removing linux_amd64/_hashlib.x86_64-linux-gnu.so
:PackageInfo: Removing linux_amd64/libvorbisfile.so.3
:PackageInfo: Removing linux_amd64/libpng12.so.0
:PackageInfo: Removing linux_amd64/libCg.so
:PackageInfo: Removing linux_amd64/usage.xml
:PackageInfo: Removing linux_amd64/datetime.x86_64-linux-gnu.so
:PackageInfo: Removing linux_amd64/libXcursor.so.1
:PackageInfo: Removing linux_amd64/libXrandr.so.2
:PackageInfo: Removing linux_amd64/libutil.so.1
:PackageInfo: Removing linux_amd64/panda3d/physics.so
:PackageInfo: Removing linux_amd64/panda3d/fx.so
:PackageInfo: Removing linux_amd64/panda3d/core.so
:PackageInfo: Removing linux_amd64/panda3d/direct.so
:PackageInfo: panda3d downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf.pz
:downloader: [0x12c4ad8] begin GET [ file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf.pz ]
:PackageInfo: Uncompressing /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/panda3d.thaumaturge_1.9.linux_amd64.mf.pz to /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/panda3d.thaumaturge_1.9.linux_amd64.mf
:PackageInfo: Unpacking /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/panda3d.thaumaturge_1.9.linux_amd64.mf

The only log file that appears in /.panda3d/log is “p3dcore.log”. The contents follow:

_root_dir = /home/ian/.panda3d, _temp_directory = /tmp/, platform = linux_amd64, host_url = file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage, verify_contents = 1
api_version = 16
read contents.xml, max_age = 5, expires in 4 s
Supported platforms: linux_amd64
Plugin version: 1.0.4c
Plugin distributor: thaumaturge
Core API host URL: file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage
Core API version: 1.0.4.2
Core API date: Fri May 15 18:01:22 2015

Creating P3DInstance 0x2448bb0:  console_output="1" auto_start="1"
setting background to download, splash_window = 0
_per_platform for images = 1
/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/images/images.xml is stale.
p3d_basename = packp3d1.9.p3d
send_notify(onpluginload)
p3d trusted
_matches_run_origin = 1
_matches_script_origin = 0
_auto_install = 1, _auto_start = 1, _stop_on_ready = 0
send_notify(onauth)
Migrating panda3d from platform "" to platform "linux_amd64"
_per_platform for panda3d = 1
/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml is stale.
set_wparams: 1 800 600
notify: onpluginload 
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.xml: 0M, 0x244a8d0
notify: onauth 
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.xml: 100%, 0x244a8d0, success = 1
File is incorrect: images.mf
report_package_info_ready: images
Selected install plan for images: 0 of 75332.3
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml: 0M, 0x244d1a0
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.xml: 100%, 0x244d1a0, success = 1
File is incorrect: panda3d.thaumaturge_1.9.linux_amd64.mf
report_package_info_ready: panda3d
<<<<<<<<<<<<<<<<<<<<<<<<< Adding packages 
panda3d: asked for seq 22, we have seq 22
egg: asked for seq 22, we have seq 22
_per_platform for egg = 1
/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.xml is stale.
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.mf.pz: 0M, 0x2463940
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/images/images.mf.pz: 100%, 0x2463940, success = 1
Spawning thread to handle images
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.xml: 0M, 0x2473b40
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.xml: 100%, 0x2473b40, success = 1
File is incorrect: egg.thaumaturge_1.9.linux_amd64.mf
report_package_info_ready: egg
panda3d: asked for seq 22, we have seq 22
Beginning install of 2 packages, total 26999308 bytes required (0 previously downloaded).
send_notify(ondownloadbegin)
Installing panda3d, package 1 of 2, 21323264 bytes.
Selected install plan for panda3d: 0 of 2.2736e+07
send_notify(ondownloadnext)
notify: ondownloadbegin 
notify: ondownloadnext 
get_panda_script_object
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf.pz: 20.3M, 0x2453aa0
Successfully joined thread: 0
Spawning thread to handle images
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/panda3d/thaumaturge_1.9/linux_amd64/panda3d.thaumaturge_1.9.linux_amd64.mf.pz: 100%, 0x2453aa0, success = 1
Spawning thread to handle panda3d
Successfully joined thread: 0
Done installing images: success = 1
Successfully joined thread: 0
Spawning thread to handle panda3d
Successfully joined thread: 0
Done installing panda3d: success = 1
Installing egg, package 2 of 2, 5676044 bytes.
Selected install plan for egg: 0 of 5.99523e+06
send_notify(ondownloadnext)
notify: ondownloadnext 
get_panda_script_object
Downloading file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.mf.pz: 5.4M, 0x244e110
Downloaded file:///home/ian/PandaRepository/trunk/built_thaumaturge/stage/egg/thaumaturge_1.9/linux_amd64/egg.thaumaturge_1.9.linux_amd64.mf.pz: 100%, 0x244e110, success = 1
Spawning thread to handle egg
Successfully joined thread: 0
Spawning thread to handle egg
Successfully joined thread: 0
Done installing egg: success = 1
send_notify(ondownloadcomplete)
send_notify(onready)
send_notify(inst_mgr)
send_notify(autostarting...)
setting background to launch, splash_window = 0
send_notify((setting background image))
Search path is /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
_p3dpython_exe: /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64/p3dpython
Setting environment:
  XDG_VTNR=8
  SSH_AGENT_PID=1768
  XDG_SESSION_ID=c1
  CLUTTER_IM_MODULE=xim
  GPG_AGENT_INFO=/run/user/1000/keyring-e7eBGg/gpg:0:1
  TERM=xterm
  SHELL=/bin/bash
  VTE_VERSION=3409
  XDG_SESSION_COOKIE=bf7f4f93ff8902358cb08c61554bae9d-1431696769.352571-308363736
  WINDOWID=56623502
  GNOME_KEYRING_CONTROL=/run/user/1000/keyring-e7eBGg
  GTK_MODULES=gail:atk-bridge:overlay-scrollbar
  USER=ian
  LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
  SSH_AUTH_SOCK=/run/user/1000/keyring-e7eBGg/ssh
  SESSION_MANAGER=local/ian-Satellite-Pro-A300:@/tmp/.ICE-unix/1684,unix/ian-Satellite-Pro-A300:/tmp/.ICE-unix/1684
  USERNAME=ian
  DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path
  XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
  DESKTOP_SESSION=cinnamon
  QT_IM_MODULE=ibus
  QT_QPA_PLATFORMTHEME=appmenu-qt5
  GDM_XSERVER_LOCATION=local
  PWD=/home/ian/Documents/My Game Projects/P3D
  XMODIFIERS=@im=ibus
  GNOME_KEYRING_PID=1609
  LANG=en_ZA.UTF-8
  MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path
  MDM_XSERVER_LOCATION=local
  GDMSESSION=cinnamon
  SHLVL=1
  XDG_SEAT=seat0
  HOME=/home/ian
  GNOME_DESKTOP_SESSION_ID=this-is-deprecated
  XDG_SESSION_DESKTOP=cinnamon
  LOGNAME=ian
  QT4_IM_MODULE=xim
  XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/usr/local/share/:/usr/share/:/usr/share/mdm/
  DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7Uu5toi36w,guid=dffdbdd5c38fbe2a086d5f4a5555f584
  LESSOPEN=| /usr/bin/lesspipe %s
  MDMSESSION=cinnamon
  TEXTDOMAIN=im-config
  WINDOWPATH=8
  XDG_RUNTIME_DIR=/run/user/1000
  DISPLAY=:0
  MDM_LANG=en_ZA.UTF-8
  XDG_CURRENT_DESKTOP=X-Cinnamon
  GTK_IM_MODULE=ibus
  LESSCLOSE=/usr/bin/lesspipe %s %s
  TEXTDOMAINDIR=/usr/share/locale/
  COLORTERM=gnome-terminal
  XAUTHORITY=/home/ian/.Xauthority
  _=/usr/bin/panda3d
  PATH=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
  LD_LIBRARY_PATH=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  DYLD_LIBRARY_PATH=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  PYTHONPATH=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  PYTHONHOME=
  PRC_PATH=/home/ian/.panda3d/prc:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  PANDA_PRC_PATH=/home/ian/.panda3d/prc:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64:/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  TEMP=/tmp/
  PANDA3D_ROOT=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64
  EGG_ROOT=/home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/egg/thaumaturge_1.9/linux_amd64
Attempting to start python from /home/ian/.panda3d/hosts/b2a93ccb73f723420c491b3644b690a8/panda3d/thaumaturge_1.9/linux_amd64/p3dpython
Not changing working directory.
child still alive after 101 ms
P3dSession:rt_thread_run--reading 0x244d3e0
send_notify(started!(?))
notify: ondownloadcomplete 
notify: onready 
notify: inst_mgr 
notify: autostarting... 
notify: (setting background image) 
notify: started!(?) 
BinaryXML:read_xml: XNode is NULL
P3dSession:rt_thread_run: doc is NULL
P3dSession:rt_terminate: Termination requested 
send_notify(Main thread stopping)
notify: Main thread stopping 
notify: onpythonstop 
finish_instance: 0x2448bb0
Assigning 0x2448bb0->log_pathname = 
Python process has successfully stopped.
  signalled by 11, core = 128
Successfully joined thread: 0
P3D_finalize called
counts: 1 1 1 1

That helps a lot! This part is really important:

  signalled by 11, core = 128

11 means a SIGSEGV (segmentation fault) happened in the child process, and 128 means a core file was dumped.

The error message preceding it it saying it stopped “successfully”, although technically true (it did crash successfully, after all), is kind of misleading.

Now, look for a file named “core” (probably placed in the current directory) and run “gdb /home/ian/.panda3d/path/to/p3dpython core”, wait for it to load, and hit “bt” to get a traceback.

You may need to recompile the rtdist with “–optimize 3” or even lower to get meaningful debug info, as the default level 4 strips away a lot of debugging info.

Ah, excellent! :slight_smile:

Hmm… I’m not finding it. :confused:

A bit of quick searching suggests that Ubuntu (and some other Linux distributions) may by default prevent core dumps; I intend to look into this further tomorrow (it’s somewhat late here, and I’m tired).

Otherwise, just to check that I’m looking for the right thing: Would it just be named “core”, with no extension? Could it have some other name?

I’ll hopefully perform a clean build and a clean installation of that build tomorrow. Even if we don’t get a “core” file, there might be more output to look at.

It would just be named “core”. You can enable core dumps with “ulimit -c unlimited”.