LISTSERV mailing list manager LISTSERV 16.5

Help for QSERV-L Archives


QSERV-L Archives

QSERV-L Archives


QSERV-L@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

QSERV-L Home

QSERV-L Home

QSERV-L  May 2015

QSERV-L May 2015

Subject:

Re: Leaks

From:

Fritz Mueller <[log in to unmask]>

Reply-To:

General discussion for qserv (LSST prototype baseline catalog)

Date:

Thu, 7 May 2015 15:21:17 -0700

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (383 lines)

Yup, I think this is def on our side of the fence -- we are chasing it 
downstream right now -- will keep you posted!

     --FritzM.

On 05/07/2015 03:18 PM, Andrew Hanushevsky wrote:
> Hi John,
>
> The defined action is that you need to delete this object after you 
> have called the request object's Finished() method. No one but the 
> object creator can delete that object.
>
> Andy
>
> On Thu, 7 May 2015, John Gates wrote:
>
>> I took a very close look at what's going on with the leaks. The 
>> smoking gun appears to be qdisp::QueryResource.cc:line 83  bool 
>> requestSent = _session->ProcessRequest(_request);
>>
>> The _request object is never delete during normal operation. It holds 
>> 2 shared pointers to MergingRequester. One directly as _requester and 
>> one its _retryFunc (aka DispatchAction).
>>
>> Some action needs to be taken to delete _request, which has been 
>> given to xrootd. When ProcessRequest() is done, it calls 
>> Executive::markCompleted() via the NotifyExecutive class.
>> Is there something we need to do with xrootd or are we supposed to 
>> delete this object in the call to markCompleted()?
>>
>> -John
>>
>>
>>
>> DispatchAction - destructor not called - holds a ResponseRequestor 
>> shared pointer in _spec
>>    -Passed to xrootd as _retryFunc
>>
>> MergingRequester - destructor not called - because DispatchAction 
>> still holds shared pointer and ?????? holds shared pointer
>>
>> QueryResource - destructor not called -
>>
>> Mgr - destructor not called because ?????
>>
>> InfileMerger - destructor not called because ????
>>
>>
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/css/Facade.cc:463) - *** qservTest_case01_qserv.Filter is NOT 
>> subChunked.
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/css/Facade.cc:244) - getChunkLevel returns 0
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/qana/PostPlugin.cc:158) - Query is non-chunked
>> 0507 11:36:44.479 [0x7f28cb63f700] DEBUG qproc.QuerySession 
>> (build/qproc/QuerySession.cc:118) - Query Plugins applied:
>>     QuerySession::_showFinal() : parallel: SELECT * FROM 
>> qservTest_case01_qserv.Filter AS QST_1_
>>    QuerySession::_showFinal() : merge: SELECT *
>>
>> ****************
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/ccontrol/UserQuery.cc:269) - UserQuery uqCount=1
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/qdisp/Executive.cc:158) - Executive exCount=1
>> ***************
>>
>>
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/css/KvInterfaceImplMem.cc:128) - *** 
>> KvInterfaceImplMem::exists(/DBS/qservTest_case01_qserv): YES
>> 0507 11:36:44.479 [0x7f28cb63f700] INFO  root 
>> (build/css/Facade.cc:105) - *** containsDb(qservTest_case01_qserv): 1
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root (app.py:343) - 
>> reporting -1 100 Dispatch Query.
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/MessageStore.cc:49) - Msg: -1 100 Dispatch Query.
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/ccontrol/userQueryProxy.cc:105) - EXECUTING UserQuery_submit(1)
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/qana/ScanTablePlugin.cc:130) - Squash scan tables: <2 chunks.
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/UserQuery.cc:277) - UserQuery::_setupMerger()
>>
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/rproc/InfileMerger.cc:218) - Mgr mgrCount=1 
>> *******************************************
>>
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/mysql/MySqlConnection.cc:181) - MySqlConnection::_connectHelper
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/UserQuery.cc:179) - UserQuery beginning submission
>> 0507 11:36:44.489 [0x7f28bde8a700] INFO  root 
>> (build/qproc/QuerySession.cc:399) - Non-subchunked
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/qproc/QuerySession.cc:419) - returning  queries:
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/qproc/QuerySession.cc:421) - SELECT * FROM 
>> qservTest_case01_qserv.Filter AS QST_1_
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/qproc/TaskMsgFactory2.cc:152) - no nextFragment
>> 0507 11:36:44.489 [0x7f28bde8a700] DEBUG root 
>> (build/qproc/TaskMsgFactory2.cc:154) - SELECT * FROM 
>> qservTest_case01_qserv.Filter AS QST_1_
>>
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:68) - MergingRequester mrCount=1 
>> ********************************
>> ******MergingRequesterPTR ++1 local on stack mr
>> ******                    ++1 local on stack s.requester
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:236) - setError
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:237) - setError 0
>>
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:203) - add TRACK s.requester.use_count()=2  
>> *********************************
>> 0507 11:36:44.490 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/Executive.cc:493) - Executive (0x1a8ef30) TRACKING id=1 
>> r.use_count=2  ******************
>> ******MergingRequesterPTR ++1 _requesters[1]
>> 0507 11:36:44.490 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/Executive.cc:501) - Executive TRACKING id=1 
>> r.use_count=3   *****************************
>> 0507 11:36:44.490 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/Executive.cc:211) - Flag set to false 0
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:215) - Exec add 
>> pth=/chk/qservTest_case01_qserv/1234567890
>> 0507 11:36:44.490 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/MessageStore.cc:49) - Msg: 1234567890 1200 Exec add 
>> pth=/chk/qservTest_case01_qserv/1234567890
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:392) - _dispatchQuery TRACK start 
>> use_count=3  ******************************
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:176) - DispatchAction daCount=1 
>> *********************************************
>> ******MergingRequesterPTR ++1 retryFunc->DispatchAction._spec.requester
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:399) - _dispatchQuery TRACK a use_count=4   
>> *********************************
>> ******MergingRequesterPTR ++1 r-> QueryResource._requester
>> ******                 QueryResource has sharedptr to 
>> retryFunc->DispatchAction
>> ****** r->QueryResource passed to xrootd _service->Provision(r)
>> 0507 11:36:44.490 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:407) - _dispatchQuery TRACK b use_count=5 
>> **********************************
>> Opening xroot://127.0.0.1:1094//chk/qservTest_case01_qserv/1234567890
>> 0507 11:36:44.491 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:410) - _dispatchQuery TRACK c use_count=5 
>> **********************************
>> 0507 11:36:44.491 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/Executive.cc:422) - Provision was ok
>> 0507 11:36:44.491 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:426) - _dispatchQuery TRACK end use_count=5 
>> *********************************
>> 0507 11:36:44.491 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:221) - Executive::add end TRACK use_count=5 
>> *********************************
>> 0507 11:36:44.491 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/UserQuery.cc:210) - UserQuery::submit end TRACK 
>> requester.use_count=5 ****************
>> ******MergingRequesterPTR --1 local on stack mr
>> ******                    --1 local on stack s.requester
>> 0507 11:36:44.491 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryResource.cc:56) - Provision done
>> 0507 11:36:44.491 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryResource.cc:75) - QueryResource::ProvisionDone a 
>> TRACK use_count()=3 ****************
>> 0507 11:36:44.491 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryRequest.cc:92) - New QueryRequest with payload(143)
>> ************************************************************** 
>> ******MergingRequesterPTR ++1 QueryResource._requester
>> ******       QueryResource._requester also has shared_ptr to 
>> retryFunc->DispatchAction
>> ******       is then passed to xrootd 
>> _session->ProcessRequest(_request);
>> 0507 11:36:44.492 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryResource.cc:79) - QueryResource::ProvisionDone b 
>> TRACK use_count()=4 ****************
>> 0507 11:36:44.492 [0x7f28a6bfd700] DEBUG root 
>> (build/qdisp/QueryRequest.cc:103) - Requesting, payload size: [143]
>> Task=0x7f2898000f00 processing id=0
>> ******MergingRequesterPTR ++1 local pointer p created for logging
>> 0507 11:36:44.492 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryResource.cc:101) - QueryResource::ProvisionDone c 
>> TRACK use_count()=5 *************
>> ******MergingRequesterPTR --1 QueryResource self deletes taking its 
>> _requester with it
>> 0507 11:36:44.492 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryResource.cc:103) - QueryResource::ProvisionDone end 
>> TRACK use_count()=4 ***********
>> ******MergingRequesterPTR --1 local pointer p drops out
>> ******            leaving use_count=3
>> 0507 11:36:44.492 [0x7f28bde8a700] INFO  root (app.py:404) - Query 
>> dispatch (1) took 0.006904 seconds
>> 0507 11:36:44.492 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/UserQuery.cc:217) - UserQuery::join TRACK
>> 0507 11:36:44.492 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:586) - Still 1 in flight.
>> Task 0x7f2898000f00 sess=ok Status = 1 isWrite
>> Task Handler calling RelBuff.
>> 0507 11:36:44.531 [0x7f28a61fc700] DEBUG root 
>> (build/qdisp/QueryRequest.cc:109) - Early release of request buffer
>> Task Handler calling trunc.
>> Task 0x7f2898000f00 sess=ok Status = 1 isSync
>> Task Handler responding with stream.
>> 0507 11:36:44.533 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryRequest.cc:156) - GetResponseData with buffer of 
>> 1701016181
>> Task 0x7f2898000f00 SetBuff Async Status=isReady
>> 0507 11:36:44.533 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryRequest.cc:158) - Initiated request ok
>> Task 0x7f2898000f00 sess=ok Status = 1 isReady
>> Task Handler calling ProcessResponseData.
>> 0507 11:36:44.533 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/QueryRequest.cc:184) - ProcessResponse[data] with 
>> buflen=256 (more)
>> 0507 11:36:44.533 [0x7f28a61fc700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:92) - flush 
>> state=HEADER_SIZE_WAIT blen=256 last=0
>> 0507 11:36:44.533 [0x7f28a61fc700] INFO  root 
>> (build/proto/ProtoHeaderWrap.cc:64) - buffer size=256 -> [[0]=28, 
>> [1]=13, [2]=2, [3]=0, [4]=0, ..., [251]=48, [252]=48, [253]=48, 
>> [254]=48, [255]=48]
>> 0507 11:36:44.533 [0x7f28a61fc700] DEBUG root 
>> (build/ccontrol/MergingRequester.cc:107) - HEADER_SIZE_WAIT: Resizing 
>> buffer to 307
>> 0507 11:36:44.533 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/QueryRequest.cc:208) - ProcessResponse waiting for more 
>> data
>> Task 0x7f2898000f00 SetBuff Async Status=isReady
>> Task 0x7f2898000f00 sess=ok Status = 1 isReady
>> Task Handler calling ProcessResponseData.
>> 0507 11:36:44.533 [0x7f28a57fb700] INFO  root 
>> (build/qdisp/QueryRequest.cc:184) - ProcessResponse[data] with 
>> buflen=307 (more)
>> 0507 11:36:44.533 [0x7f28a57fb700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:92) - flush state=RESULT_WAIT 
>> blen=307 last=0
>> 0507 11:36:44.533 [0x7f28a57fb700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:115) - _buffer [[0]=8, [1]=0, 
>> [2]=16, [3]=1, [4]=26, ..., [302]=0, [303]=16, [304]=0, [305]=16, 
>> [306]=0]
>> 0507 11:36:44.533 [0x7f28a57fb700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:126) - Flushed msgContinues=0 
>> last=0 for tableName=r_1ebceab7f925bae5a000996b370390668_1234567890_0
>> 0507 11:36:44.534 [0x7f28a57fb700] DEBUG root 
>> (build/rproc/InfileMerger.cc:287) - EXECUTING 
>> InfileMerger::merge(sizes=28, 307, rowcount=9)
>> 0507 11:36:44.534 [0x7f28a57fb700] DEBUG root 
>> (build/rproc/InfileMerger.cc:446) - InfileMerger query prepared: 
>> CREATE TABLE qservResult.result_11903762039 (`filterId` TINYINT(4),
>> `filterName` CHAR(3),
>> `photClam` FLOAT,
>> `photBW` FLOAT)
>> 0507 11:36:44.534 [0x7f28a57fb700] INFO  root 
>> (build/mysql/MySqlConnection.cc:181) - MySqlConnection::_connectHelper
>> 0507 11:36:44.534 [0x7f28a57fb700] INFO  root 
>> (build/rproc/InfileMerger.cc:358) - InfileMerger 0x7f28a8003040 
>> connected to db.
>> 0507 11:36:44.617 [0x7f28a57fb700] DEBUG root 
>> (build/rproc/InfileMerger.cc:369) - InfileMerger query success: 
>> CREATE TABLE qservResult.result_11903762039 (`filterId` TINYINT(4),
>> `filterName` CHAR(3),
>> `photClam` FLOAT,
>> `photBW` FLOAT)
>> 0507 11:36:44.617 [0x7f28a57fb700] DEBUG root 
>> (build/rproc/InfileMerger.cc:459) - InfileMerger table 
>> qservResult.result_11903762039 ready
>> 0507 11:36:44.617 [0x7f28a57fb700] INFO  root 
>> (build/qdisp/QueryRequest.cc:208) - ProcessResponse waiting for more 
>> data
>> Task 0x7f2898000f00 SetBuff Async Status=isReady
>> Task 0x7f2898000f00 sess=ok Status = 1 isReady
>> Task Handler calling ProcessResponseData.
>> 0507 11:36:44.618 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryRequest.cc:184) - ProcessResponse[data] with 
>> buflen=0 (more)
>> 0507 11:36:44.618 [0x7f28a6bfd700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:92) - flush state=RESULT_RECV 
>> blen=0 last=0
>> 0507 11:36:44.618 [0x7f28a6bfd700] DEBUG root 
>> (build/ccontrol/MergingRequester.cc:146) - RESULT_RECV last = 0
>> 0507 11:36:44.618 [0x7f28a6bfd700] INFO  root 
>> (build/qdisp/QueryRequest.cc:208) - ProcessResponse waiting for more 
>> data
>> Task 0x7f2898000f00 SetBuff Async Status=isReady
>> Task 0x7f2898000f00 sess=ok Status = 1 isReady
>> Task Handler calling ProcessResponseData.
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/QueryRequest.cc:184) - ProcessResponse[data] with 
>> buflen=0 (last)
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:92) - flush state=BUFFER_DRAIN 
>> blen=0 last=1
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/ccontrol/MergingRequester.cc:156) - BUFFER_DRAIN last=1 bLen=0 
>> buffer=[0]
>> 0507 11:36:44.618 [0x7f28a61fc700] WARN  root 
>> (build/qdisp/QueryRequest.cc:203) - Connection closed when more 
>> information expected sz=1
>> Session Complete: cancel=0 task=ok
>> Task 0x7f2898000f00 Kill status = isDone mhpend=0
>> RelTask dodel=0 id=0
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/QueryRequest.cc:288) - Finished() ok.
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:256) - Executive::markCompleted(1,1)
>> ******MergingRequesterPTR ++1 local pointer i created for logging
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:283) - markCompleted TRACK ref=1 
>> use_count=4  *******************************
>> ******MergingRequesterPTR ++1 local pointer p created for logging
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:512) - &&& UNTRACK 
>> p.use_count()=5            ***************************
>> ******MergingRequesterPTR --1 Executive._requesters erased it
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:514) - &&& UNTRACK erased 
>> p.use_count()=4     *************************
>> ******MergingRequesterPTR ++1 local pointer p removed
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:520) - Executive (0x1a8ef30) UNTRACKING 
>> id=1  ***************************
>> 0507 11:36:44.618 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:592) - Executive::_waitAllUntilEmpty() 
>> TRACK  ************************
>> 0507 11:36:44.618 [0x7f28a61fc700] INFO  root 
>> (build/qdisp/Executive.cc:286) - markCompleted end TRACK ref=1 
>> use_count=3 ***********************
>> ******MergingRequesterPTR --1 local pointer i removed, use_count=2
>> 0507 11:36:44.618 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:232) - entry state:0x7f28a800d480 
>> Resource(/chk/qservTest_case01_qserv/1234567890): 20150507-11:36:44, 
>> Complete (success), 0, )
>> 0507 11:36:44.618 [0x7f28bde8a700] INFO  root 
>> (build/qdisp/Executive.cc:243) - Query exec finish. 1 dispatched.
>> 0507 11:36:44.618 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/MessageStore.cc:49) - Msg: 1234567890 2000 Complete 
>> (success) 0 1431023804
>> 0507 11:36:44.618 [0x7f28bde8a700] DEBUG root 
>> (build/qdisp/Executive.cc:250) - Flag set to _empty=1 sCount=1 
>> requestCount=1
>> 0507 11:36:44.618 [0x7f28bde8a700] INFO  root 
>> (build/rproc/InfileMerger.cc:332) - Merged 
>> qservResult.result_11903762039 into qservResult.result_11903762039
>> 0507 11:36:44.618 [0x7f28bde8a700] INFO  root 
>> (build/ccontrol/UserQuery.cc:222) - Joined everything (success)
>> 0507 11:36:44.619 [0x7f28bde8a700] INFO  root (app.py:408) - Query 
>> exec (1) took 0.126505 seconds
>> 0507 11:36:44.620 [0x7f28bde8a700] INFO  root (app.py:413) - Final 
>> state of all queries success
>> 0507 11:36:44.621 [0x7f28bd489700] INFO  root 
>> (build/ccontrol/UserQuery.cc:134) - ~UserQuery uqCount=0 
>> *************************
>> 0507 11:36:44.621 [0x7f28bd489700] INFO  root 
>> (build/qdisp/Executive.cc:163) - ~Executive exCount=0 
>> *************************
>>
>> ########################################################################
>> Use REPLY-ALL to reply to list
>>
>> To unsubscribe from the QSERV-L list, click the following link:
>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1
>>
>
> ########################################################################
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the QSERV-L list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

March 2018
February 2018
January 2018
December 2017
August 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use