Hi all,
For the problem with the keytool, this is a known bug that will be fixed
in the next release (which is currently being certified).
The workaround is to manually change the link in /usr/bin/keytool to
point to the keytool provided by java 1.6.
As for the username/password error, Alessandra, could you do the same
than Santanu? Just change your DN entry in GOCDB to have EMAILADDRESS
(in capital).
I've opened a Savannah bug ticket for this problem now.
Cheers,
Cristina
------------------------------------------------------------------------
--------
Cristina del Cano Novales
Scientific Computing Technology Group / e-Science
Science and Technology Facilities Council
Rutherford Appleton Laboratory
Harwell Science and Innovation Campus
OX11 0QX Didcot
Tel: +44 (0) 01235 445778
[log in to unmask]
> -----Original Message-----
> From: LHC Computer Grid - Rollout [mailto:[log in to unmask]]
> On Behalf Of Alessandra Forti
> Sent: 24 July 2010 17:45
> To: [log in to unmask]
> Subject: Re: [LCG-ROLLOUT] gLite 3.2 :: MON (???)
>
> Sorry for this stream
>
> I get the same error Santanu gets
>
> org.glite.apel.core.ApelException: org.glite.apel.core.ApelException:
> javax.jms.JMSException: User name or password is invalid: No user for
> client certificate: [log in to unmask],
> CN=bohr2822.tier2.hep.manchester.ac.uk, L=HEP, OU=Manchester,
> O=eScience, C=UK
> at org.glite.apel.publisher.AccountPublisher.<init>(Unknown Source)
> at org.glite.apel.publisher.AccountManager.run(Unknown Source)
> at org.glite.apel.publisher.ApelPublisher.runJoinProcessor(Unknown
> Source)
> at org.glite.apel.publisher.ApelPublisher.run(Unknown Source)
> at org.glite.apel.publisher.ApelPublisher.main(Unknown Source)
>
> the machine is registered in GOCDB. Might it be the same
capitalisation
> problem?
>
> thanks
>
> cheers
> alessandra
>
>
>
> Cristina DelCanoNovales wrote:
> >
> > Hi Santanu,
> >
> > The certificate DN your box was sending had "emailaddress" in
capital
> > letters, and our broker ACL is case sensitive. This is now fixed.
> >
> > Your publisher is still failing, but this time with an outofmemory
> > error. Can you change the value for the limit variable in your apel
> > configuration file? This is in
> > /opt/glite/etc/glite-apel-publisher/publisher-config-yaim.xml.
> >
> > You should have something like:
> >
> > ...
> >
> > <Limit>300000</Limit>
> >
> > ...
> >
> > Can you change it to:
> >
> > ...
> >
> > <Limit>150000</Limit>
> >
> > And try again?
> >
> > Cheers,
> >
> > Cristina
> >
> >
---------------------------------------------------------------------
> -----------
> >
> > *Cristina del Cano Novales*
> >
> > Scientific Computing Technology Group / e-Science
> > Science and Technology Facilities Council
> > Rutherford Appleton Laboratory
> > Harwell Science and Innovation Campus
> > OX11 0QX Didcot
> >
> >
> > Tel: +44 (0) 01235 445778
> >
> > [log in to unmask]
> > <mailto:[log in to unmask]>
> >
> > *From:* LHC Computer Grid - Rollout
> > [mailto:[log in to unmask]] *On Behalf Of *Santanu Das
> > *Sent:* 07 July 2010 10:28
> > *To:* [log in to unmask]
> > *Subject:* Re: [LCG-ROLLOUT] gLite 3.2 :: MON (???)
> >
> > Hi Cristina ,
> >
> > the problem has gone now.
> >
> > =====Starting APEL Publisher=====
> > Wed Jul 7 07:17:01 BST 2010
> > Current versions of APEL RPMS:
> > glite-apel-publisher-2.0.12-7
> > glite-apel-core-2.0.12-8
> > glite-apel-yaim-1.0.1-0
> > Copying certificates from /etc/grid-security to the Java key store
> used by the APEL Publisher
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - Read-in
configuration:
> [logenabled, p, inspectTables, j] [DBUsername=accounting,
> DBURL=jdbc:mysql://localhost:3306/accounting, DBPassword=****,
> site=UKI-SOUTHGRID-CAM-HEP, Timeout for awaiting a reply from the
> consumer.=1800000, The max. num of accounting records in each JMS
> message=2000, Batch size=300000, republish=missing]
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - ------ Starting the
> apel application ------
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - **** APEL is
examining
> the schema ****
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - Checking the
> LcgRecords table
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - The LcgRecords schema
> is up-to-date
> > Wed Jul 7 06:17:35 UTC 2010: apel-publisher - Checking the
> BlahdRecords table
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - The BlahdRecords
> schema is up-to-date
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - Checking the
> LcgProcessedFiles table
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - The LcgProcessedFiles
> schema is up-to-date
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - Checking the
> SpecRecords table
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - The SpecRecords
schema
> is up-to-date
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - Checking the
GkRecords
> table
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - The GkRecords schema
> is up-to-date
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - Checking the
> MessageRecords table
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - The MessageRecords
> schema is up-to-date
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - **** Schema checks
> complete ****
> > Wed Jul 7 06:17:37 UTC 2010: apel-publisher - Optimising table:
> EventRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Optimising table:
> GkRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Optimising table:
> MessageRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Optimising table:
> SpecRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Optimising table:
> LcgRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Optimising table:
> BlahdRecords
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - **** Combining tables
> and republishing in LcgRecords ****
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - Checking valid CPU
> spec data exists
> > Wed Jul 7 06:17:38 UTC 2010: apel-publisher - CPU spec values found
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher -
> ====================================
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - Synchronisation
> data check
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher -
> ====================================
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - WARNING - Time stamp
> when the apel was last started cannot be found, this probably means
the
> apel is running for the first time with the re-publish option set to
> 'missing', re-publishing check will therefore occur on next attempt
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - Rows deleted from
> RepublishInfo: 0
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - Publisher Mode =
Apel
> Publisher (Default)
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - Building account
> records via the new Accounting Log File
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - NB: Record Counts may
> be zero if Patch #898 is not active on this CE
> > Wed Jul 7 06:17:39 UTC 2010: apel-publisher - Stitching together
all
> accounting records
> > Wed Jul 7 06:18:12 UTC 2010: apel-publisher - Stitching completed
> > Wed Jul 7 06:18:12 UTC 2010: apel-publisher - Storing accounting
> data into local database
> > Exception in thread "main" java.lang.OutOfMemoryError: Java heap
> space
> > at java.util.Arrays.copyOf(Arrays.java:2894)
> > at java.lang.String.<init>(String.java:196)
> > at
>
com.mysql.jdbc.SingleByteCharsetConverter.toString(SingleByteCharsetCon
> verter.java:211)
> > at
>
com.mysql.jdbc.SingleByteCharsetConverter.toString(SingleByteCharsetCon
> verter.java:190)
> > at
> com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:2244)
> > at com.mysql.jdbc.ResultSet.getString(ResultSet.java:2203)
> > at com.mysql.jdbc.ResultSet.getString(ResultSet.java:2321)
> > at
> org.glite.apel.core.db.MySQLImpl.convertJoinToArrayListGliteCE(Unknown
> Source)
> > at
> org.glite.apel.core.db.MySQLImpl.generateAccountRecordsGliteCE(Unknown
> Source)
> > at
> org.glite.apel.publisher.AccountManager.processRecords(Unknown Source)
> > at org.glite.apel.publisher.AccountManager.run(Unknown
> Source)
> > at
> org.glite.apel.publisher.ApelPublisher.runJoinProcessor(Unknown
Source)
> > at org.glite.apel.publisher.ApelPublisher.run(Unknown
Source)
> > at org.glite.apel.publisher.ApelPublisher.main(Unknown
> Source)
> >
> >
> >
> >
> > So, curious to know what was it. Looks like the problem wasn't local
> -
> > is it?
> >
> > another thing: Why there is no "Completed Synchronization data
check"
> > section in the log where we used to see "/Number of Joined
accounting
> > records/" and "/Publishing Records to GOC/" as in the previous
> version
> > of APEL? Something is still not complete here?
> >
> > Cheers,
> > Santanu
> >
> >
> >
> >
> > On 06/07/10 17:16, Cristina DelCanoNovales wrote:
> >
> > Hi Santanu,
> >
> > Could you try to run the apel publisher again?
> >
> > Cheers,
> >
> > Cristina
> >
> >
---------------------------------------------------------------------
> -----------
> > Cristina del Cano Novales
> > Scientific Computing Technology Group / e-Science
> > Science and Technology Facilities Council
> > Rutherford Appleton Laboratory
> > Harwell Science and Innovation Campus
> > OX11 0QX Didcot
> >
> > Tel: +44 (0) 01235 445778
> > [log in to unmask] <mailto:cristina.del-cano-
> [log in to unmask]>
> >
> >
> >
> >
> > -----Original Message-----
> >
> > From: LHC Computer Grid - Rollout [mailto:LCG-
> [log in to unmask]]
> >
> > On Behalf Of Santanu Das
> >
> > Sent: 06 July 2010 16:39
> >
> > To: [log in to unmask] <mailto:LCG-
> [log in to unmask]>
> >
> > Subject: Re: [LCG-ROLLOUT] gLite 3.2 :: MON (???)
> >
> >
> >
> > Hi Gilles,
> >
> >
> >
> > This is what I see now:
> >
> >
> >
> > [root@vmtest2 ~]# export APEL_HOME=/opt/glite
> >
> > [root@vmtest2 ~]# /opt/glite/bin/apel-publisher -f
> >
> > /opt/glite/etc/glite-apel-publisher/publisher-config-yaim.xml
> >
> > =====Starting APEL Publisher=====
> >
> > Tue Jul 6 16:10:58 BST 2010
> >
> > Current versions of APEL RPMS:
> >
> > glite-apel-publisher-2.0.12-7
> >
> > glite-apel-core-2.0.12-8
> >
> > glite-apel-yaim-1.0.1-0
> >
> > Copying certificates from /etc/grid-security to the Java key
> store
> >
> > used by the APEL Publisher
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - Read-in
> >
> > configuration: [logenabled, p, inspectTables, j]
> >
> > [DBUsername=accounting,
> DBURL=jdbc:mysql://localhost:3306/accounting,
> >
> > DBPassword=****, site=UKI-SOUTHGRID-CAM-HEP, Timeout for
awaiting
> a
> >
> > reply from the consumer.=1800000, The max. num of accounting
> records in
> >
> > each JMS message=2000, Batch size=300000, republish=missing]
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - ------
> Starting the
> >
> > apel application ------
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - **** APEL is
> >
> > examining the schema ****
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - Checking the
> >
> > LcgRecords table
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - The
LcgRecords
> >
> > schema is up-to-date
> >
> > Tue Jul 6 15:11:32 UTC 2010: apel-publisher - Checking the
> >
> > BlahdRecords table
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - The
> BlahdRecords
> >
> > schema is up-to-date
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Checking the
> >
> > LcgProcessedFiles table
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - The
> >
> > LcgProcessedFiles schema is up-to-date
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Checking the
> >
> > SpecRecords table
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - The
> SpecRecords
> >
> > schema is up-to-date
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Checking the
> >
> > GkRecords table
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - The GkRecords
> schema
> >
> > is up-to-date
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Checking the
> >
> > MessageRecords table
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - The
> MessageRecords
> >
> > schema is up-to-date
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - **** Schema
> checks
> >
> > complete ****
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > EventRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > GkRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > MessageRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > SpecRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > LcgRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Optimising
> table:
> >
> > BlahdRecords
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - ****
Combining
> >
> > tables and republishing in LcgRecords ****
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - Checking
valid
> CPU
> >
> > spec data exists
> >
> > Tue Jul 6 15:11:34 UTC 2010: apel-publisher - CPU spec
> values
> >
> > found
> >
> > Tue Jul 6 15:11:35 UTC 2010: apel-publisher - program
> aborted
> >
> > org.glite.apel.core.ApelException:
> >
> > org.glite.apel.core.ApelException: javax.jms.JMSException: User
> name or
> >
> > password is invalid: No user for client certificate:
> >
> > [log in to unmask]
> <mailto:[log in to unmask]>,
> CN=vmtest2.hep.phy.cam.ac.uk,
> >
> > L=UCS, OU=Cambridge, O=eScience, C=UK
> >
> > at
> org.glite.apel.publisher.AccountPublisher.<init>(Unknown
> >
> > Source)
> >
> > at
> org.glite.apel.publisher.AccountManager.run(Unknown
> >
> > Source)
> >
> > at
> >
> > org.glite.apel.publisher.ApelPublisher.runJoinProcessor(Unknown
> Source)
> >
> > at
org.glite.apel.publisher.ApelPublisher.run(Unknown
> >
> > Source)
> >
> > at
> org.glite.apel.publisher.ApelPublisher.main(Unknown
> >
> > Source)
> >
> > Caused by: org.glite.apel.core.ApelException:
> >
> > javax.jms.JMSException: User name or password is invalid: No
user
> for
> >
> > client certificate: [log in to unmask]
> <mailto:[log in to unmask]>,
> >
> > CN=vmtest2.hep.phy.cam.ac.uk, L=UCS, OU=Cambridge, O=eScience,
> C=UK
> >
> > at
> >
> >
>
org.glite.apel.publisher.AccountPublisher.createActiveMQProducer(Unknow
> >
> > n Source)
> >
> > ... 5 more
> >
> > Caused by: javax.jms.JMSException: User name or password is
> >
> > invalid: No user for client certificate:
> >
> > [log in to unmask]
> <mailto:[log in to unmask]>,
> CN=vmtest2.hep.phy.cam.ac.uk,
> >
> > L=UCS, OU=Cambridge, O=eScience, C=UK
> >
> > at
> >
> >
>
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport
> >
> > .java:49)
> >
> > at
> >
> >
>
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnectio
> >
> > n.java:1255)
> >
> > at
> >
> >
>
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveM
> >
> > QConnection.java:1350)
> >
> > at
> >
> >
>
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection
> >
> > .java:300)
> >
> > at
> >
> >
>
org.apache.activemq.ActiveMQConnection.createTopicSession(ActiveMQConne
> >
> > ction.java:1047)
> >
> > ... 6 more
> >
> > Caused by: java.lang.SecurityException: User name or
password
> is
> >
> > invalid: No user for client certificate:
> >
> > [log in to unmask]
> <mailto:[log in to unmask]>,
> CN=vmtest2.hep.phy.cam.ac.uk,
> >
> > L=UCS, OU=Cambridge, O=eScience, C=UK
> >
> > at
> >
> >
>
org.apache.activemq.security.JaasCertificateAuthenticationBroker.addCon
> >
> > nection(JaasCertificateAuthenticationBroker.java:102)
> >
> > at
> >
> >
>
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBro
> >
> > kerFilter.java:89)
> >
> > at
> >
> >
>
org.apache.activemq.broker.TransportConnection.processAddConnection(Tra
> >
> > nsportConnection.java:686)
> >
> > at
> >
> >
>
org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddCon
> >
> > nection(ManagedTransportConnection.java:86)
> >
> > at
> >
> >
>
org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:13
> >
> > 4)
> >
> > at
> >
> >
>
org.apache.activemq.broker.TransportConnection.service(TransportConnect
> >
> > ion.java:308)
> >
> > at
> >
> >
>
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportCon
> >
> > nection.java:182)
> >
> > at
> >
> >
>
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter
> >
> > .java:68)
> >
> > at
> >
> >
>
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormat
> >
> > Negotiator.java:113)
> >
> > at
> >
> >
>
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMon
> >
> > itor.java:210)
> >
> > at
> >
> >
>
org.apache.activemq.transport.TransportSupport.doConsume(TransportSuppo
> >
> > rt.java:84)
> >
> > at
> >
> >
>
org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.j
> >
> > ava:91)
> >
> > at
> >
> >
>
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:
> >
> > 203)
> >
> > at
> >
> >
>
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:18
> >
> > 5)
> >
> > at java.lang.Thread.run(Thread.java:619)
> >
> > Caused by: javax.security.auth.login.FailedLoginException:
No
> user
> >
> > for client certificate: [log in to unmask]
> <mailto:[log in to unmask]>,
> >
> > CN=vmtest2.hep.phy.cam.ac.uk, L=UCS, OU=Cambridge, O=eScience,
> C=UK
> >
> > at
> >
> >
>
org.apache.activemq.jaas.CertificateLoginModule.login(CertificateLoginM
> >
> > odule.java:91)
> >
> > at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> >
> > Method)
> >
> > at
> >
> >
>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
> >
> > va:39)
> >
> > at
> >
> >
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
> >
> > rImpl.java:25)
> >
> > at java.lang.reflect.Method.invoke(Method.java:597)
> >
> > at
> >
> >
> javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
> >
> > at
> >
> >
>
javax.security.auth.login.LoginContext.access$000(LoginContext.java:186
> >
> > )
> >
> > at
> >
> >
> javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> >
> > at
java.security.AccessController.doPrivileged(Native
> >
> > Method)
> >
> > at
> >
> >
>
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680
> >
> > )
> >
> > at
> >
> >
> javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> >
> > at
> >
> >
>
org.apache.activemq.security.JaasCertificateAuthenticationBroker.addCon
> >
> > nection(JaasCertificateAuthenticationBroker.java:87)
> >
> > ... 14 more
> >
> >
> >
> >
> >
> >
> >
> > It Doesn't look too bad, but is this what we expect to see? what
> are
> >
> > the
> >
> > "User name or password is invalid:" messages at the end?
> >
> >
> >
> > cheers,
> >
> > Santanu
> >
> >
> >
> > Santanu Das wrote:
> >
> >
> >
> > Hi Gilles,
> >
> >
> >
> > Thanks for the clarification and changing the GOCDB info for
> me.
> >
> > Hopefully it should be okay by tomorrow morning.
> >
> >
> >
> > Cheers,
> >
> > Santanu
> >
> >
> >
> >
> >
> > Hi Santanu,
> >
> >
> >
> >
> >
> >
> >
> > The "username or password is invalid" error message is
> also
> >
> > confusing. It is the standard reply from the APEL
> ActiveMQ broker
> >
> > that basically tells you "Sorry, you can't publish, I
> don't
> >
> >
> >
> > recognize
> >
> >
> >
> > you as a valid client because you're not in my list". So
> your config
> >
> > might be fine, but when you try to connect to the broker
> it kicks
> >
> >
> >
> > you
> >
> >
> >
> > out unless the cert DN of your host is in the ACL (i.e.
> it has been
> >
> > taken from GOCDB).
> >
> >
> >
> >
> >
> >
> >
> > I hope that makes sense.
> >
> >
> >
> >
> >
> >
> >
> > Cheers,
> >
> >
> >
> > Gilles
> >
> >
> >
> >
> >
> >
> >
> > --
> >
> > Gilles Mathieu
> >
> > EGEE/WLCG - GOCDB development team
> >
> > RAL-STFC, Didcot OX110QX, UK
> >
> > +44 1235 446 340
> >
> >
> >
> > "deadline for complaints was yesterday"
> >
> >
> >
> >
> >
>
> --
> The most effective way to do it, is to do it. (Amelia Earhart)
>
> Northgrid Tier2 Technical Coordinator
> http://www.hep.manchester.ac.uk/computing/tier2
|