Yes, trying with the latest stable version (3.4.2) would be useful, if 
you don't mind.  There were some lowlevel garbage collection problems 
that were fixed in the 3.4.2 release;  these problems manifested 
themselves in a variety of ways.

I'm not saying this is the issue, but it wouldn't hurt to verify that 
your problem can be reproduced in 3.4.2.

thanks,

-- Scott

On 05/17/2011 12:22 PM, Scott Hammel wrote:
> I'm pretty sure it is 3.4.0 (from files on the server it looks like an
> August 2010 build. The server is in a totally isolated network with
> nothing with GUI support that can hit the admin tools).
>
> Tomcat is the version bundled with the Fedora installer.
>
> Would you like me to be sure I'm running at the latest version and try
> the test scripts again before you go forward?
>
> Scott
>
> On 05/17/2011 12:45 PM, Scott Prater wrote:
>> Thanks, Scott.  I'll try to reproduce the problem in my environment,
>> Fedora 3.4.2.
>>
>> Can you tell me what version of Fedora and Tomcat (or other webapp
>> server) you're using?
>>
>> -- Scott
>>
>> On 05/17/2011 11:08 AM, Scott Hammel wrote:
>>> Hey, Scott,
>>>
>>> Thanks for responding. I'm more a C/C++ programmer and not a Java
>>> programmer (though I sometimes play one on the Internet), so I'm just
>>> guessing on the array bounds -- feels like something incrementing an int
>>> into the sign bit, though I'd think Java would throw some array bounds
>>> exception before that happened. Figured I'd do a little math later maybe
>>> to test my hypothesis.
>>>
>>> Recall, this was all in a 32-bit environment. I really hope it is a
>>> non-issue and something I'm doing in the end. Note disseminating the
>>> datastream content directly appears to work OK, which confuses me a
>>> little, though I haven't looked to see if the code for that does things
>>> differently.
>>>
>>> Anyway, here's a series of commands (extracted from my test scripts)
>>> that should reproduce the problem:
>>>
>>> mkdir /usr/fedora/tomcat/webapps/ROOT/ingestpool
>>> mkdir /tmp/fedrun
>>> dir=/tmp/fedrun
>>> pid=test:pid01
>>>
>>> dd if=/dev/urandom
>>> of=/usr/fedora/tomcat/webapps/ROOT/ingestpool/sample.bin bs=1M count=400
>>>
>>> ./makefoxml $pid http://localhost:8080/ingestpool/sample.bin>
>>> $dir/sample.xml
>>>
>>> /usr/fedora/client/bin/fedora-ingest.sh f $dir/sample.xml
>>> info:fedora/fedora-system:FOXML-1.1 localhost:8080 fedoraAdmin<insert
>>> pwd here>    http
>>>
>>> wget -O $dir/export.xml --auth-no-challenge --http-user=fedoraAdmin
>>> --http-password=<insert pwd here>
>>> http://localhost:8080/fedora/objects/$pid/export?context=archive
>>>
>>> Note: I use the REST call via a wget rather than the provided export
>>> client scripts because it looks to me from the Java heap explosion that
>>> the export scripts must end up doing the export via the SOAP API.
>>> --
>>> The content of makefoxml:
>>>
>>> #!/bin/bash
>>>
>>> #usage: makefoxml<pid>    <refurl>
>>> #escape slashes off the URL
>>> RF=${2//\//\\/}
>>> #if you need to escape ampersands as well, uncomment this:
>>> #RF=${RF//'&'/'\&'}
>>>
>>> # make substitutions ....
>>> sed '
>>> s/PID=""/PID="'"$1"'"/
>>> s/rdf:about=""/rdf:about="info:fedora\/'"$1"'"/
>>> s/dc:identifier>/dc:identifier>'"$1"'/
>>> s/REF=""/REF="'"${RF}"'"/
>>> '<    "foxml_tpl.xml"
>>>
>>> --
>>> The content of foxml_tmp.xml (the sed script above does the edits noted
>>> in the xml comments in this template):
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!-- following element: set the PID attribute -->
>>> <foxml:digitalObject VERSION="1.1" PID=""
>>> xmlns:foxml="info:fedora/fedora-system:def/foxml#"
>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>> xsi:schemaLocation="info:fedora/fedora-system:def/foxml#
>>> http://www.fedora.info/definitions/1/0/foxml1-1.xsd";>
>>>
>>> <foxml:objectProperties>
>>> <foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="A"/>
>>> <foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
>>> <foxml:property NAME="info:fedora/fedora-system:def/model#ownerId"
>>> VALUE="fedoraAdmin"/>
>>> </foxml:objectProperties>
>>>
>>> <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT">
>>> <foxml:datastreamVersion
>>> FORMAT_URI="info:fedora/fedora-system:FedoraRELSExt-1.0"
>>>           ID="RELS-EXT.0" LABEL="RDF Statements about this Object"
>>> MIMETYPE="application/rdf+xml">
>>> <foxml:xmlContent>
>>> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/";
>>>               
>>> xmlns:fedora="info:fedora/fedora-system:def/relations-external#"
>>>               xmlns:fedora-model="info:fedora/fedora-system:def/model#"
>>>               xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/";
>>>               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
>>> xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";>
>>> <!-- following element: put the PID as the value for the rdf:about
>>> attribute -->
>>> <rdf:description rdf:about="">
>>> </rdf:description>
>>> </rdf:RDF>
>>> </foxml:xmlContent>
>>> </foxml:datastreamVersion>
>>> </foxml:datastream>
>>>
>>> <foxml:datastream CONTROL_GROUP="X" ID="DC" STATE="A" VERSIONABLE="true">
>>> <foxml:datastreamVersion ID="DC.0" LABEL="Dublin Core Record"
>>> MIMETYPE="text/xml">
>>> <foxml:xmlContent>
>>> <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/";
>>>               xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/";
>>>               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>> xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
>>> http://www.openarchives.org/OAI/2.0/oai_dc.xsd";>
>>> <dc:title></dc:title>
>>> <dc:creator>Test Program</dc:creator>
>>> <dc:description>A test object</dc:description>
>>> <!-- following element: put the PID between the tags -->
>>> <dc:identifier></dc:identifier>
>>> </oai_dc:dc>
>>> </foxml:xmlContent>
>>> </foxml:datastreamVersion>
>>> </foxml:datastream>
>>>
>>> <foxml:datastream CONTROL_GROUP="M" ID="Content" STATE="A">
>>> <foxml:datastreamVersion ID="Content.0" LABEL="This is the object
>>> content" MIMETYPE="    application/octet-stream">
>>> <!-- following element: put the URL to the content file as the value for
>>> the REF attribute -->
>>> <!-- must be an http URL, e.g.,
>>> http://localhost:8080/ingestpool/foxmldoc.xml -->
>>> <!-- I just create a directory "ingestpool" under
>>> /usr/fedora/tomcat/webapps/ROOT and put the files there -->
>>> <foxml:contentLocation REF="" TYPE="URL" />
>>> </foxml:datastreamVersion>
>>> </foxml:datastream>
>>>
>>>
>>> </foxml:digitalObject>
>>>
>>>
>>>
>>> On 05/17/2011 10:00 AM, Scott Prater wrote:
>>>> Scott,
>>>>
>>>> Can you come up with a test case that confirms this limitation?  If you
>>>> can provide one, I'll open up a JIRA ticket for the issue.
>>>>
>>>> thanks,
>>>>
>>>> -- Scott
>>>>
>>>> On 05/16/2011 10:45 AM, Scott Hammel wrote:
>>>>> Oh, I think I see: last line of the serializer's serialize function does
>>>>> this:
>>>>> bytes.toByteArray()
>>>>> where bytes is a ByteArrayOutputStream
>>>>>
>>>>> I *think* the max size of an array index in Java (32-bit) is
>>>>> 2,147,483,647 (i.e., 2^31 - 1, max value of a java int). So, this
>>>>> function will throw an exception if a datastream "archive" export is>
>>>>> ~2 GB.
>>>>>
>>>>> scott
>>>>>
>>>>> On 05/16/2011 11:00 AM, Scott Hammel wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Running some export tests using Fedora's REST export API, I get a
>>>>>> negative array index Java exception when doing an "archive" export of an
>>>>>> object at around 400 MB (>320 MB,<       450 MB).
>>>>>>
>>>>>> Fedora is version 3.4 something; running on 32-bit CentOS 5.5, Sun Java
>>>>>> 1.6, 21
>>>>>>
>>>>>> Is it just me or has anyone else seen something like that?
>>>>>>
>>>>>> Thanks,
>>>>>> Scott
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Achieve unprecedented app performance and reliability
>>>>>> What every C/C++ and Fortran developer should know.
>>>>>> Learn how Intel has extended the reach of its next-generation tools
>>>>>> to help boost performance applications - inlcuding clusters.
>>>>>> http://p.sf.net/sfu/intel-dev2devmay
>>>>>> _______________________________________________
>>>>>> Fedora-commons-users mailing list
>>>>>> Fedora-commons-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Achieve unprecedented app performance and reliability
>>>>> What every C/C++ and Fortran developer should know.
>>>>> Learn how Intel has extended the reach of its next-generation tools
>>>>> to help boost performance applications - inlcuding clusters.
>>>>> http://p.sf.net/sfu/intel-dev2devmay
>>>>> _______________________________________________
>>>>> Fedora-commons-users mailing list
>>>>> Fedora-commons-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>>>
>>> ------------------------------------------------------------------------------
>>> Achieve unprecedented app performance and reliability
>>> What every C/C++ and Fortran developer should know.
>>> Learn how Intel has extended the reach of its next-generation tools
>>> to help boost performance applications - inlcuding clusters.
>>> http://p.sf.net/sfu/intel-dev2devmay
>>> _______________________________________________
>>> Fedora-commons-users mailing list
>>> Fedora-commons-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>>
>
>
> ------------------------------------------------------------------------------
> Achieve unprecedented app performance and reliability
> What every C/C++ and Fortran developer should know.
> Learn how Intel has extended the reach of its next-generation tools
> to help boost performance applications - inlcuding clusters.
> http://p.sf.net/sfu/intel-dev2devmay
> _______________________________________________
> Fedora-commons-users mailing list
> Fedora-commons-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users


-- 
Scott Prater
Library, Instructional, and Research Applications (LIRA)
Division of Information Technology (DoIT)
University of Wisconsin - Madison
pra...@wisc.edu

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Fedora-commons-users mailing list
Fedora-commons-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to