Search This Blog

27 June 2009

Update: Ardor3d and DarkMMO on OpenSolaris

As noted in the previous entry, I have Ardor3d working now in OpenSolaris (as of v 0.6-SNAPSHOT of Ardor3d).

I now have a mavenized-version of DarkMMO working as well (poms will be checked in soon).

Below is the startup script I am currently using to launch it.
#!/bin/bash

DS_PATH=`pwd`
DS_CP="$DS_PATH/DarkMMO-Client/target/DarkMMO-Client-1.0-SNAPSHOT.jar"
for file in $DS_PATH/DarkMMO-Client/target/dependency/*.jar; do
    DS_CP="$DS_CP:$file"
done

export LD_LIBRARY_PATH=/export/home/malachi/work/Ardor3Dv1/ardor3d-lwjgl/lib/lwjgl/native/solaris

java -cp $DS_CP -Ddarkmmo.nwndatadir="$DS_PATH/nwn" com.worldwizards.darkmmo.client.DarkMMOClient

24 June 2009

Maxine on OpenSolaris

Maxine is a VM designed for and written in the Java(TM) Programming Language with an emphasis on leveraging meta-circularity, componentized design, and code reuse to achieve flexibility, configurability, and productivity for academic and industrial virtual machine researchers.
So I thought I'd give it a shot.

I extracted the zip file into into /opt.  Originally permissions were as root:root (due to pfexec usage for opt) but I had to change it since maxine didn't like not having write access to the directory.  I also created a symlink to /opt/maxine [which will be how I refer to it from now on].

I copied junit-4.4.jar into /opt/maxine/bin and added a line at the top of /opt/maxine/bin/max:

JUNIT4_CP=/opt/maxine/bin/junit-4.4.jar
I modified my .zshrc to set /opt/maxine as MAXINE_HOME and added $MAXINE_HOME/bin to the beginning of my path.

Following these instructions, I took it for a little spin. 

# max build

This actually failed (cc: language M1 not recognized) as long as gcc was in the PATH before the SunStudioExpress/bin; swapping those around it began working.


# max helloworld
Hello World



# max vm -cp VM/bin test.output.GCTest2
Could not load main class: java.lang.ClassNotFoundException: test.output.GCTest2

KK, let's troubleshoot that...

# max -v helloworld
/opt/maxine/Native/generated/solaris/maxvm -classpath /opt/maxine/VM/bin util.HelloWorld
Hello World!


# max -v vm -cp VM/bin util.HelloWorld
/opt/maxine/Native/generated/solaris/maxvm -cp VM/bin util.HelloWorld
Could not load main class: java.lang.ClassNotFoundException: util.HelloWorld

# max -v vm -cp /opt/maxine/VM/bin util.HelloWorld
/opt/maxine/Native/generated/solaris/maxvm -cp /opt/maxine/VM/bin util.HelloWorld
Hello World!


Ok, I think I have it...

# max -v vm -cp /opt/maxine/VM/bin test.output.GCTest2
/opt/maxine/Native/generated/solaris/maxvm -cp /opt/maxine/VM/bin test.output.GCTest2
Garbage Collector Test
...
GCTest2 done.

I don't have 'max gate'  working yet and 'max inspect' core dumped while trying to fork... but hey, it's a start.

22 June 2009

Ardor3D on OpenSolaris

I noticed earlier today that Sun finally changed the licensing on Darkstar, as per my request. Before going and working on my design, I decided to see what the status of DarkMMO was. Jeff has picked it back up, and has started porting it to Ardor3d.

Ardor3d? I hadn't heard of that...

Apparently, Joshua Slack has moved the development from jMonkeyEngine to Ardor3d. The little bit of research I did seems to indicate that there is a bit of a rift with that -- but that Ardor3d is more current.

Ok, well, can I get Ardor3d working on OpenSolaris?

I go and check out their 'getting started' and was very disappointed to see references to Eclipse. Yes, I know many of you out there like Eclipse; but I am a purist and so have been against it since day 1. Besides, I really didn't like IBM's deceptive practices regarding its launch.

Oh well, let's see if this project is worth using after all. I download the source (subversion, yay!) and go to compile it (maven, yay!)... First failure is obvious... I needed to add a mirror to their nexus repository inside mine.

Try again...

Ok, well now the ardor3d-swt is failing. As much as I hate to, I decide to troubleshoot why it isn't building. As could be expected from a non-java library, the problem was caused by their repo not having the native libraries (yes, native - that's the main reason I despise SWT -- whoever heard of requiring native libraries for a java app intentionally?).

Ok, screw it. I commented out the ardor3d-swt module and then added an exclusion for **/*Swt*.java to the compiler in the top level pom. Ok, now everything else builds.

Now to run the example... hmmm... well that's annoying, I don't really want to have to find all the jars to test it... So I copied the dependency plugin configuration from ambrosia's pom into the top level pom and rebuilt.

Good. Now I have all the runtime dependencies for the examples in one place. I added all of them (why is the Java6 -classpath directory not working?) to the classpath, as well as the auto-generated ardor3d-examples-0.6-SNAPSHOT.jar.

Try again. Close.
export LD_LIBRARY_PATH=/export/home/malachi/work/Ardor3Dv1/ardor3d-lwjgl/lib/lwjgl/native/solaris:$LD_LIBRARY_PATH

Try again. Ok this time it runs. Can't use JOGL in the popup because there isn't a native library for it. Can't use 8 samples, because then it complains about GLX13 configuration. Can't use fullscreen -- well, that's a bit harsh. I *can* use fullscreen but it looks like crap because it changes to 320x240 and has severe artifacts. However, 4 samples, LWJGL, 1152x864 looks pretty good. Colors look a LOT better on 1024x768 though.

So not sure how much time I will spend on it. Definitely appears that it will be a bit of work to make it usable on OpenSolaris. Then again, maybe I should retry on Windows since my Emotiv Epoc won't run on anything else right now anyways.

BTW: To run the example after setting up the classpath and LD_LIBRARY_PATH...
java com.ardor3d.example.basic.BoxExample

10 June 2009

Firefox 3.5 and Java is not enabled

So I download the 3.5 Preview of Firefox (luckily the tarball rather than overwriting my working Firefox) and when I try to do just about anything:

The current version of Java on this system (0 - Java Not Enabled)
So haven't figured out yet how to fix this. Edit|Preferences says that it is enabled. The other version of Firefox (3.1) can run at the same time and Java is working on it...  Hope they iron that out soon.  Especially since that little attempt completely wiped out all my personal data in the 3.1 version (bookmarks, passwords, history, everything -- which by the way, REALLY sucks).

03 June 2009

Installing JavaFX

download javafx_sdk-1_2-solaris-i586.sh

malachi@serveris[1]:/opt % pfexec chmod +x javafx_sdk-1_2-solaris-i586.sh
malachi@serveris[0]:/opt % pfexec ./javafx_sdk-1_2-solaris-i586.sh
malachi@serveris[0]:/opt % pfexec rm javafx_sdk-1_2-solaris-i586.sh
malachi@serveris[0]:/opt % pfexec ln -s javafx-sdk1.2 javafx

add /opt/javafx/bin to your PATH

per http://java.sun.com/javafx/1/tutorials/core/getStarted/
malachi@serveris[0]:~/work/javafx/Calculator/tmp % javafxc Calculator.fx
malachi@serveris[0]:~/work/javafx/Calculator/tmp % javafx Calculator

20 May 2009

OpenSolaris Bible: First Impressions


I got home from work last night and had my new OpenSolaris Bible [Amazon $32] sitting at my doorstep.  Browsing through it, I was fairly impressed with the range of tidbits they covered. ZFS, iPKG, SMF, FMD, xVM, Zones, Java and C++ development, etc.

First thing I decided to play with was getting those remote CIFS shares mounted (they had been accessible via file explorer, but not via command-line).  Unfortunately, it required I reboot the machine after enabling the smb/server... and well, for some unknown reason that currently takes 4 hours... so I didn't get to play with it much.  I did however manage to get one of the shares to mount... Still trying to get the automount to work, but it's a start.

Taking the book to work today, I decided to play with FMD... Here's some comparison results between the work machine and the home machine... [Note: 'eris' is the work machine. 'serveris' is the home machine]

[eris:malachi(0)] ~% pfexec /usr/lib/fm/fmd/fmtopo
TIME                 UUID
May 20 09:40:20 23d4dce1-d973-c98a-ee18-ee2a16dd8ee8

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0/core=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0/core=0/strand=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0/core=1

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0/core=1/strand=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=0/pciexrc=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=0/pciexrc=0/pciexbus=1

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=0/pciexrc=0/pciexbus=1/pciexdev=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=0/pciexrc=0/pciexbus=1/pciexdev=0/pciexfn=0

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=1

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=1/pciexrc=1

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/hostbridge=2

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/chassis=0


malachi@serveris[0]:~ %  pfexec /usr/lib/fm/fmd/fmtopo
TIME                 UUID
May 20 09:42:42 0524f912-299c-6280-d892-c36f53c00103

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/core=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/core=0/strand=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/core=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/core=1/strand=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/memory-controller=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/memory-controller=0/dram-channel=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0/memory-controller=0/dram-channel=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/core=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/core=0/strand=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/core=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/core=1/strand=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/memory-controller=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/memory-controller=0/dram-channel=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=1/memory-controller=0/dram-channel=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0/pcibus=5

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0/pcibus=5/pcidev=11

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0/pcibus=5/pcidev=11/pcifn=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0/pcibus=5/pcidev=32

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=0/pcibus=5/pcidev=32/pcifn=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=1/pciexrc=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=2

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=2/pciexrc=2

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=3

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=3/pciexrc=3

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=3/pciexrc=3/pciexbus=2

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=3/pciexrc=3/pciexbus=2/pciexdev=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=3/pciexrc=3/pciexbus=2/pciexdev=0/pciexfn=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=4

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=4/pciexrc=4

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=4/pciexrc=4/pciexbus=1

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=4/pciexrc=4/pciexbus=1/pciexdev=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=4/pciexrc=4/pciexbus=1/pciexdev=0/pciexfn=0

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=5

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=5/pciexrc=5

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=6

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/hostbridge=6/pciexrc=6

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/chassis=0





first cpu:

[eris:malachi(0)] ~% pfexec /usr/lib/fm/fmd/fmtopo -P all hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0      
TIME                 UUID
May 20 09:44:10 2d75b8fe-0c11-4e89-d8a5-ed2569e7b58e

hc://:product-id=OptiPlex-755:chassis-id=72VYGH1:server-id=eris/motherboard=0/chip=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=OptiPlex-755:chassis-id=72VY...
  group: authority                      version: 1   stability: Private/Private
    product-id        string    OptiPlex-755
    chassis-id        string    72VYGH1
    server-id         string    eris
  group: chip-properties                version: 1   stability: Private/Private
    vendor_id         string    GenuineIntel
    family            int32     6
    model             int32     23
    stepping          int32     6


malachi@serveris[0]:~ %  pfexec /usr/lib/fm/fmd/fmtopo -P all hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0      
TIME                 UUID
May 20 09:45:56 a0c248a0-75ae-65c3-e8b3-be99702ad460

hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-1234567890:server-id=serveris/motherboard=0/chip=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=L1N64-SLI-WS:chassis-id=SYS-...
  group: authority                      version: 1   stability: Private/Private
    product-id        string    L1N64-SLI-WS
    chassis-id        string    SYS-1234567890
    server-id         string    serveris
  group: chip-properties                version: 1   stability: Private/Private
    vendor_id         string    AuthenticAMD
    family            int32     15
    model             int32     193
    stepping          int32     3
    NodeId            uint32    0x0
    CoherentNodes     uint32    0x2
    SbNode            uint32    0x0
    LkNode            uint32    0x0
    SystemCoreCount   uint32    0x4
    C0Unit            uint32    0x0
    C1Unit            uint32    0x1
    McUnit            uint32    0x2
    HbUnit            uint32    0x3
    SbLink            uint32    0x1
    BroadcastRoutes   uint32[]  [ 9 1 ]
    ResponseRoutes    uint32[]  [ 1 8 ]
    RequestRoutes     uint32[]  [ 1 8 ]


shorthand for the CPU names....

[eris:malachi(0)] ~% pfexec /usr/lib/fm/fmd/fmtopo -s cpu
TIME                 UUID
May 20 09:45:57 08533a3a-65de-e73d-e8f1-e89fba223ed0

cpu:///cpuid=0

cpu:///cpuid=1


malachi@serveris[0]:~ % pfexec /usr/lib/fm/fmd/fmtopo -s cpu
TIME                 UUID
May 20 09:47:22 d2a17d23-222d-412d-c691-cf1273371317

cpu:///cpuid=0

cpu:///cpuid=1

cpu:///cpuid=2

cpu:///cpuid=3



Now, what else can I play with?

Hanging at Hostname: serveris

I had to reboot last night, so I made sure to keep track of the time.
10:58pm I had told Grub which instance to run and it was waiting at Hostname: serveris
1:30am I went to bed and it was still sitting there
7:30 this morning I check 'dmesg' and it shows nothing at all until 2:55am

So it took 4 hours to boot. That's pretty lame.

14 May 2009

Project Darkstar

I recently had this conversation with Owen (rest of the conversation is here):

Owen F. Kellett to meLink

Wed, May 6, 2009 at 12:11 PM

Hi Malachi,

I haven't forgotten about you. Good news though. We have recently gotten approval to make the server api as well as the interfaces for writing custom services, authenticators, etc GPLv2 + classpath exception. We haven't updated the code yet, but this is coming very soon. I would anticipate the next official release should contain this new licensing scheme. In the meantime, keep an eye on our incremental releases: http://download.java.net/maven/2/com/projectdarkstar/server/sgs-server-dist/

Either the next one, or the one following will likely have this change.

thanks, Owen

Malachi de Ælfweald to Owen

Wed, May 6, 2009 at 3:39 PM

Hey Owen,

That is great news! So if I am understanding correctly, that will allow me to specify the sgs-server-api as a maven dependency without dropping the MIT licensing on my game?

Thanks, Malachi de Ælfweald http://www.google.com/profiles/malachid

Owen F. Kellett to me

Wed, May 6, 2009 at 5:09 PM

Yes that is correct. The classpath exception should free you from the requirement of using GPL for any linked code.



Based on that, I decided it was time to move forward with the darkstar-based projects...

Since I have a Hudson server, I decided to let it keep track of how to make it successfully build...

At first I was trying to build with JDK7, but it kept failing on the Javadoc module saying that the jars had invalid characters in it. That went away once I changed to JDK6. I also had to tell it to skip the tests, because one of them just hung forever...

The Hudson job for the server is here.
The Hudson job for the client is here.
The Hudson job for the maven plugin is here.

The distributables were delivered to Nexus.
sgs-server-dist-0.9.10-SNAPSHOT.zip
sgs-tutorial-server-dist-0.9.10-SNAPSHOT.zip
sgs-client-dist-0.9.10-SNAPSHOT.zip
sgs-tutorial-client-dist-0.9.10-SNAPSHOT.zip
sgs-maven-plugin-1.0-alpha-4-SNAPSHOT.jar

I created a new user on the server ('darkstar'/'darkstar') and unzipped the sgs-server-dist-0.9.10-SNAPSHOT.zip

I then created a symlink (/home/darkstar/current to /home/darkstar/sgs-server-dist-0.9.10-SNAPSHOT)

I don't know if it is correct, but I made this SMF manifest for it.

darkstar@kallisti [0] ~> svccfg import hudson.xml

darkstar@kallisti [0] ~> svcs -xv
svc:/application/darkstar:default (Project Darkstar Server)
State: maintenance since Thu May 14 23:37:36 2009
Reason: Restarting too quickly.
See: http://sun.com/msg/SMF-8000-L5
See: http://www.projectdarkstar.com/
See: /var/svc/log/application-darkstar:default.log
Impact: This service is not running.


darkstar@kallisti [0] ~> cat /var/svc/log/application-darkstar:default.log
WARNING: No application jar found with a META-INF/app.properties configuration file in the /home/darkstar/sgs-server-dist-0.9.10-SNAPSHOT/deploy directory
May 14, 2009 11:37:36 PM com.sun.sgs.impl.kernel.Kernel checkProperties
SEVERE: Missing required property com.sun.sgs.app.name
Exception in thread "main" java.lang.IllegalArgumentException: Missing required property com.sun.sgs.app.name
at com.sun.sgs.impl.kernel.Kernel.checkProperties(Kernel.java:855)
at com.sun.sgs.impl.kernel.Kernel.(Kernel.java:202)
at com.sun.sgs.impl.kernel.Kernel.main(Kernel.java:1123)
[ May 14 23:37:36 Stopping because all processes in service exited. ]
[ May 14 23:37:36 Restarting too quickly, changing state to maintenance. ]

Guess it's time to build an app...

10 May 2009

Server Died


So I got home last night to find the server had power but was not responding (mouse, keyboard, ssh, anything). I tried rebooting, but it kept handing at "Hostname: serveris" and wouldn't go any further (even in single-user mode). I saw some chatlogs online that suggested adding '-k -a -d verbose' and using '/dev/null' to the answer of any questions (like /etc/system replacement)...

I tried that and got this far (see left)...

Looking around some more, I saw that if I changed the '-k' to '-kd' it would drop it into debug mode. At that point, I did the following:



[0] moddebug/W 80000000
[0] :c

This allowed me to see a few more details.... (sorry for the blurriness of the pic - it was about 3am)

After trying to find anything online that would help (and the IRC channel) I finally said screw it and decided I would reinstall opensolaris on the root mirror.

I downloaded the USB version of OpenSolaris 0906 111a, but evidentially my quad core machine does not have the option of booting from USB (WTF?). I reburned the CD version and installed it. One thing that confused me is that although my old system was 10/08 upgraded to 111a and the new version was supposed to be 0906 111a, it now says 101b.

Trying to boot the new one, it again hung. At a different position, but... I was starting to think it was a hardware problem. I let it try to boot overnight and the next morning it was finally at the login prompt... with the old install.

The logs showed that it had tried to load the Belkin UPS a few steps after where it locked up, so I unplugged the UPS. I went ahead and applied all updates and rebooted. It took about 5 hours for it to finally boot again (though it did). It still says I am using 101b and that there are no new updates.

The xVM instance is there and I was able to start it. The whole root zone however is gone. The ZFS partition is there, and empty. zoneadm doesn't show anything but global. So, I am going to try to recreate the global zone, but... I still don't know what happened. I am also concerned that it currently takes about 5 hours to boot.

06 May 2009

Playing some music

So I wanted to listen to some music, but neither youtube or pandora were working (not sure why, they were yesterday)...

So I tried Songbird, which I use at work. It wouldn't work either:
Error: GStreamer error: Internal data flow error. Additional information: gstbasesrc.c(2234): gst_base_src_loop (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin1/GstFileSrc:source:
streaming task paused, reason not-linked (-1)

So I tried Rhythm, but it couldn't play anything either...

WTF? Right?
So I did this instead. Now I have music playing :)

01 May 2009

Don't forget to escape the inner class

I think I have used Windows too long...

malachi@serveris[1]:~/work/ambrosia/syrinx % java -cp target/syrinx-2.3-SNAPSHOT.jar org.eoti.sound.BrainwaveOscillator$Test
Error: Main method not found in class org.eoti.sound.BrainwaveOscillator, please define the main method as:
public static void main(String[] args)
Exception in thread "main" java.lang.RuntimeException: Main method not found in org.eoti.sound.BrainwaveOscillator
at sun.launcher.LauncherHelper.signatureDiagnostic(LauncherHelper.java:209)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:197)

malachi@serveris[1]:~/work/ambrosia/syrinx % java -cp target/syrinx-2.3-SNAPSHOT.jar org.eoti.sound.BrainwaveOscillator\$Test


You have to escape the $ for the inner class :(

24 April 2009

Hudson Maven Release Plug-in Plug-in + Hudson Google Code plugin

I was excited to be able to use the Hudson Google Code plugin for my project.



Unfortunately, when I tried to also use the Hudson Maven Release Plug-in Plug-in with it, it always failed to authenticate...


[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /home/hudson/jobs/ambrosia-jdk6-standalone/workspace/. && svn --username hudson@eoti.org --password '*****' --non-interactive commit --file /var/tmp/maven-scm-2033681108.commit --targets /var/tmp/maven-scm-1162162468517704084-targets
[INFO] Working directory: /home/hudson/jobs/ambrosia-jdk6-standalone/workspace/.
[HUDSON] Archiving /home/hudson/jobs/ambrosia-jdk6-standalone/workspace/./pom.xml to /home/hudson/jobs/ambrosia-jdk6-standalone/modules/org.eoti$ambrosia/builds/2009-04-24_00-59-40/archive/org.eoti/ambrosia/2.2-SNAPSHOT/pom.xml
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The svn command failed.
Command output:
svn: Commit failed (details follow):
svn: MKACTIVITY of '/svn/!svn/act/0776c9b3-28c2-443e-a144-97770aaff2b2': authorization failed: Could not authenticate to server: rejected Basic challenge (http://ambrosia.googlecode.com)

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: Unable to commit files
Provider message:
The svn command failed.
Command output:
svn: Commit failed (details follow):
svn: MKACTIVITY of '/svn/!svn/act/0776c9b3-28c2-443e-a144-97770aaff2b2': authorization failed: Could not authenticate to server: rejected Basic challenge (http://ambrosia.googlecode.com)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:699)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at hudson.maven.agent.Main.launch(Main.java:158)
at hudson.maven.MavenBuilder.call(MavenBuilder.java:162)
at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:578)
at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:524)
at hudson.remoting.UserRequest.perform(UserRequest.java:97)
at hudson.remoting.UserRequest.perform(UserRequest.java:46)
at hudson.remoting.Request$2.run(Request.java:236)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.maven.plugin.MojoFailureException: Unable to commit files
Provider message:
The svn command failed.
Command output:
svn: Commit failed (details follow):
svn: MKACTIVITY of '/svn/!svn/act/0776c9b3-28c2-443e-a144-97770aaff2b2': authorization failed: Could not authenticate to server: rejected Basic challenge (http://ambrosia.googlecode.com)

at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:190)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
... 28 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40 seconds
[INFO] Finished at: Fri Apr 24 01:00:22 PDT 2009
[INFO] Final Memory: 17M/218M
[INFO] ------------------------------------------------------------------------
channel stopped
Finished: FAILURE


This was because it was using http instead of https to do the checkout...
The solution was to only partially use the Google Code plugin...


23 April 2009

Compiling in the zone; eg. where's the damned math.h?

So it appears that some of the basic include files were not included by default in the zone either. To get that working (and thus get random stuff compiling correctly)...

pfexec pkg install SUNWlibm