Quantcast

tower - missing translation

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

tower - missing translation

Darren Ball
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Philip Aston-2
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil

On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF


_______________________________________________
Grinder-development mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-development




------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Darren Ball
Hi Philip,
I think this is also a problem (below).  It seems that locale is set to nothing in this case and this is causing a translation in tower to throw an exception.
It only happens when the agents are connecting for statistical reporting?  Rebuilding to see if your changes fix this, but I think this is slightly different.

-Darren

Stack trace:
2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push :process-state) 0
2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push :threads) 0
2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push :statistics) 0
2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push :sample) 0
2015-04-18 03:12:08,313 DEBUG net.grinder.console.service.bootstrap_impl: Starting HTTP server at 0.0.0.0:6373
2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request :put /properties -> 200 (53.28 ms)
2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push :process-state) 1
2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push :threads) 1
2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push :process-state) 2
2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push :threads) 2
2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request :post /files/distribute -> 200 (10.33 ms)
2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push :process-state) 3
2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push :threads) 3
2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request :post /agents/start-workers -> 200 (21.76 ms)
2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Ready] }
2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push :process-state) 4
2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push :threads) 4
2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push :process-state) 5
2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push :threads) 5
2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push :statistics) 1
2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push :sample) 1
2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Running (1/1 thread)] }
2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at taoensso.tower$format_msg.doInvoke(tower.clj:542)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
at clojure.lang.RestFn.invoke(RestFn.java:439)
at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
at net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
at net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
at clojure.lang.ARef.notifyWatches(ARef.java:98)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invoke(core.clj:2178)
at net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
at net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
at net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
at net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push :statistics) 2
2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push :sample) 2
^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}


There are other times this works for a period and then croaks, as in this, where it does not happen until 90+ samples in.

2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push :statistics) 86
2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push :sample) 86
2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push :statistics) 87
2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push :sample) 87
2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push :statistics) 88
2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push :sample) 88
2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push :statistics) 89
2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push :sample) 89
2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push :statistics) 90
2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push :sample) 90
2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push :statistics) 91
2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push :sample) 91
2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push :statistics) 92
2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push :sample) 92
2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-1 [Running (1/1 thread)] }
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)


Environment (both nodes)
[grinder@grinderconsole ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderconsole ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


[grinder@grinderagent1 ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderagent1 ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[hidden email]> wrote:
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil


On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF


_______________________________________________
Grinder-development mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-development





------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Darren Ball
Looks like it might have solved it. FYI.  Running an extended series to see.
Thanks for the fix.

On Mon, Apr 20, 2015 at 3:05 PM, Darren Ball <[hidden email]> wrote:
Hi Philip,
I think this is also a problem (below).  It seems that locale is set to nothing in this case and this is causing a translation in tower to throw an exception.
It only happens when the agents are connecting for statistical reporting?  Rebuilding to see if your changes fix this, but I think this is slightly different.

-Darren

Stack trace:
2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push :process-state) 0
2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push :threads) 0
2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push :statistics) 0
2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push :sample) 0
2015-04-18 03:12:08,313 DEBUG net.grinder.console.service.bootstrap_impl: Starting HTTP server at 0.0.0.0:6373
2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request :put /properties -> 200 (53.28 ms)
2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push :process-state) 1
2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push :threads) 1
2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push :process-state) 2
2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push :threads) 2
2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request :post /files/distribute -> 200 (10.33 ms)
2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push :process-state) 3
2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push :threads) 3
2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request :post /agents/start-workers -> 200 (21.76 ms)
2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Ready] }
2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push :process-state) 4
2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push :threads) 4
2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push :process-state) 5
2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push :threads) 5
2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push :statistics) 1
2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push :sample) 1
2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Running (1/1 thread)] }
2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at taoensso.tower$format_msg.doInvoke(tower.clj:542)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
at clojure.lang.RestFn.invoke(RestFn.java:439)
at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
at net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
at net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
at clojure.lang.ARef.notifyWatches(ARef.java:98)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invoke(core.clj:2178)
at net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
at net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
at net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
at net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push :statistics) 2
2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push :sample) 2
^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}


There are other times this works for a period and then croaks, as in this, where it does not happen until 90+ samples in.

2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push :statistics) 86
2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push :sample) 86
2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push :statistics) 87
2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push :sample) 87
2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push :statistics) 88
2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push :sample) 88
2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push :statistics) 89
2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push :sample) 89
2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push :statistics) 90
2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push :sample) 90
2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push :statistics) 91
2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push :sample) 91
2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push :statistics) 92
2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push :sample) 92
2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-1 [Running (1/1 thread)] }
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)


Environment (both nodes)
[grinder@grinderconsole ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderconsole ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


[grinder@grinderagent1 ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderagent1 ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[hidden email]> wrote:
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil


On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF


_______________________________________________
Grinder-development mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-development






------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Philip Aston-2
OK, good to hear.

- Phil

On 20/04/15 20:26, Darren Ball wrote:
Looks like it might have solved it. FYI.  Running an extended series to see.
Thanks for the fix.

On Mon, Apr 20, 2015 at 3:05 PM, Darren Ball <[hidden email]> wrote:
Hi Philip,
I think this is also a problem (below).  It seems that locale is set to nothing in this case and this is causing a translation in tower to throw an exception.
It only happens when the agents are connecting for statistical reporting?  Rebuilding to see if your changes fix this, but I think this is slightly different.

-Darren

Stack trace:
2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push :process-state) 0
2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push :threads) 0
2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push :statistics) 0
2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push :sample) 0
2015-04-18 03:12:08,313 DEBUG net.grinder.console.service.bootstrap_impl: Starting HTTP server at 0.0.0.0:6373
2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request :put /properties -> 200 (53.28 ms)
2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push :process-state) 1
2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push :threads) 1
2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push :process-state) 2
2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push :threads) 2
2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request :post /files/distribute -> 200 (10.33 ms)
2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push :process-state) 3
2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push :threads) 3
2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request :post /agents/start-workers -> 200 (21.76 ms)
2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Ready] }
2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push :process-state) 4
2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push :threads) 4
2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push :process-state) 5
2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push :threads) 5
2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push :statistics) 1
2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push :sample) 1
2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Running (1/1 thread)] }
2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at taoensso.tower$format_msg.doInvoke(tower.clj:542)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
at clojure.lang.RestFn.invoke(RestFn.java:439)
at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
at net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
at net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
at clojure.lang.ARef.notifyWatches(ARef.java:98)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invoke(core.clj:2178)
at net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
at net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
at net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
at net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push :statistics) 2
2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push :sample) 2
^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}


There are other times this works for a period and then croaks, as in this, where it does not happen until 90+ samples in.

2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push :statistics) 86
2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push :sample) 86
2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push :statistics) 87
2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push :sample) 87
2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push :statistics) 88
2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push :sample) 88
2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push :statistics) 89
2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push :sample) 89
2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push :statistics) 90
2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push :sample) 90
2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push :statistics) 91
2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push :sample) 91
2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push :statistics) 92
2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push :sample) 92
2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-1 [Running (1/1 thread)] }
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)


Environment (both nodes)
[grinder@grinderconsole ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderconsole ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


[grinder@grinderagent1 ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderagent1 ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[hidden email]> wrote:
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil


On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren



------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Philip Aston-2
cc'ing grinder-use for the record.

There's no simple way to calculate TPS from response time. I'm guessing that you think the TPS is too low, given the peak values?

The TPS reported in the summary is calculated over the duration of the recording period. You can see this more clearly when controlling the recording with the Swing console. I suspect the problem is that you are not stopping the recording with the load, so all of the TPS values will just decline. See http://grinder.sourceforge.net/g3/console-service.html#Obtaining+the+results

- Phil

On 21/04/15 20:09, Darren Ball wrote:
Hi Philip,

Looks like this did solve the issue.
Outside of this, there seems to be one other issue in the statistical calculations IMO.

I have the following recorded data (below).  Given the mean time for the tests in MS, and looking at the TPS, the calculation does not seem correct.
My tests are throttling my application with hundreds of calls a sec, but the TPS reflects something that seems inaccurate?  The Peak TPS seems off as well.  I am looking at per test statistics.

Am I incorrect in my view of how these are supposed to work?



{
    "status": {
        "sample-count": 13999,
        "state": "Recording",
        "description": "Collecting samples: 13999"
    },
    "columns": [
        "Tests",
        "Errors",
        "Mean Test Time (ms)",
        "Test Time Standard Deviation (ms)",
        "TPS",
        "Peak TPS"
    ],
    "tests": [
        {
            "test": 1,
            "description": "ListCSCApp",
            "statistics": [
                1811,
                0,
                16.932633903920486,
                18.30901962211711,
                0.11540469098721226,
                74
            ]
        },
        {
            "test": 2,
            "description": "GetCSCApp",
            "statistics": [
                1810,
                0,
                24.992265193370166,
                11.041105810598534,
                0.11534096669621986,
                74
            ]
        },
        {
            "test": 3,
            "description": "ListCSCAppTables",
            "statistics": [
                1811,
                0,
                25.128658199889564,
                10.923634896825913,
                0.11540469098721226,
                74
            ]
        }
    ],
    "totals": [
        5432,
        0,
        22.350699558173783,
        14.382227755468788,
        0.34615034867064437,
        222
    ]
}

On Tue, Apr 21, 2015 at 12:52 PM, Philip Aston <[hidden email]> wrote:
OK, good to hear.

- Phil


On 20/04/15 20:26, Darren Ball wrote:
Looks like it might have solved it. FYI.  Running an extended series to see.
Thanks for the fix.

On Mon, Apr 20, 2015 at 3:05 PM, Darren Ball <[hidden email]> wrote:
Hi Philip,
I think this is also a problem (below).  It seems that locale is set to nothing in this case and this is causing a translation in tower to throw an exception.
It only happens when the agents are connecting for statistical reporting?  Rebuilding to see if your changes fix this, but I think this is slightly different.

-Darren

Stack trace:
2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push :process-state) 0
2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push :threads) 0
2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push :statistics) 0
2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push :sample) 0
2015-04-18 03:12:08,313 DEBUG net.grinder.console.service.bootstrap_impl: Starting HTTP server at 0.0.0.0:6373
2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request :put /properties -> 200 (53.28 ms)
2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push :process-state) 1
2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push :threads) 1
2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push :process-state) 2
2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push :threads) 2
2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request :post /files/distribute -> 200 (10.33 ms)
2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push :process-state) 3
2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push :threads) 3
2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request :post /agents/start-workers -> 200 (21.76 ms)
2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Ready] }
2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push :process-state) 4
2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push :threads) 4
2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push :process-state) 5
2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push :threads) 5
2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push :statistics) 1
2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push :sample) 1
2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Running (1/1 thread)] }
2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at taoensso.tower$format_msg.doInvoke(tower.clj:542)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
at clojure.lang.RestFn.invoke(RestFn.java:439)
at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
at net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
at net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
at clojure.lang.ARef.notifyWatches(ARef.java:98)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invoke(core.clj:2178)
at net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
at net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
at net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
at net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push :statistics) 2
2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push :sample) 2
^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}


There are other times this works for a period and then croaks, as in this, where it does not happen until 90+ samples in.

2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push :statistics) 86
2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push :sample) 86
2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push :statistics) 87
2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push :sample) 87
2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push :statistics) 88
2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push :sample) 88
2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push :statistics) 89
2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push :sample) 89
2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push :statistics) 90
2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push :sample) 90
2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push :statistics) 91
2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push :sample) 91
2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push :statistics) 92
2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push :sample) 92
2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-1 [Running (1/1 thread)] }
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)


Environment (both nodes)
[grinder@grinderconsole ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderconsole ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


[grinder@grinderagent1 ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderagent1 ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[hidden email]> wrote:
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil


On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren





------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Grinder-development] tower - missing translation

Darren Ball
Hi Philip,
Yes it is not representative of the sampling period that I would like.  I am resorting to a cron job that collects the stats at a prescribed interval that uses the tests count delta between each interval for reporting.  We are attempting to see this over long running periods.

Thanks for clarifying.

-Darren

On Tue, Apr 21, 2015 at 4:11 PM, Philip Aston <[hidden email]> wrote:
cc'ing grinder-use for the record.

There's no simple way to calculate TPS from response time. I'm guessing that you think the TPS is too low, given the peak values?

The TPS reported in the summary is calculated over the duration of the recording period. You can see this more clearly when controlling the recording with the Swing console. I suspect the problem is that you are not stopping the recording with the load, so all of the TPS values will just decline. See http://grinder.sourceforge.net/g3/console-service.html#Obtaining+the+results

- Phil


On 21/04/15 20:09, Darren Ball wrote:
Hi Philip,

Looks like this did solve the issue.
Outside of this, there seems to be one other issue in the statistical calculations IMO.

I have the following recorded data (below).  Given the mean time for the tests in MS, and looking at the TPS, the calculation does not seem correct.
My tests are throttling my application with hundreds of calls a sec, but the TPS reflects something that seems inaccurate?  The Peak TPS seems off as well.  I am looking at per test statistics.

Am I incorrect in my view of how these are supposed to work?



{
    "status": {
        "sample-count": 13999,
        "state": "Recording",
        "description": "Collecting samples: 13999"
    },
    "columns": [
        "Tests",
        "Errors",
        "Mean Test Time (ms)",
        "Test Time Standard Deviation (ms)",
        "TPS",
        "Peak TPS"
    ],
    "tests": [
        {
            "test": 1,
            "description": "ListCSCApp",
            "statistics": [
                1811,
                0,
                16.932633903920486,
                18.30901962211711,
                0.11540469098721226,
                74
            ]
        },
        {
            "test": 2,
            "description": "GetCSCApp",
            "statistics": [
                1810,
                0,
                24.992265193370166,
                11.041105810598534,
                0.11534096669621986,
                74
            ]
        },
        {
            "test": 3,
            "description": "ListCSCAppTables",
            "statistics": [
                1811,
                0,
                25.128658199889564,
                10.923634896825913,
                0.11540469098721226,
                74
            ]
        }
    ],
    "totals": [
        5432,
        0,
        22.350699558173783,
        14.382227755468788,
        0.34615034867064437,
        222
    ]
}

On Tue, Apr 21, 2015 at 12:52 PM, Philip Aston <[hidden email]> wrote:
OK, good to hear.

- Phil


On 20/04/15 20:26, Darren Ball wrote:
Looks like it might have solved it. FYI.  Running an extended series to see.
Thanks for the fix.

On Mon, Apr 20, 2015 at 3:05 PM, Darren Ball <[hidden email]> wrote:
Hi Philip,
I think this is also a problem (below).  It seems that locale is set to nothing in this case and this is causing a translation in tower to throw an exception.
It only happens when the agents are connecting for statistical reporting?  Rebuilding to see if your changes fix this, but I think this is slightly different.

-Darren

Stack trace:
2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push :process-state) 0
2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push :threads) 0
2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push :statistics) 0
2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push :sample) 0
2015-04-18 03:12:08,313 DEBUG net.grinder.console.service.bootstrap_impl: Starting HTTP server at 0.0.0.0:6373
2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request :put /properties -> 200 (53.28 ms)
2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push :process-state) 1
2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push :threads) 1
2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push :process-state) 2
2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push :threads) 2
2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request :post /files/distribute -> 200 (10.33 ms)
2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push :process-state) 3
2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push :threads) 3
2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request :post /agents/start-workers -> 200 (21.76 ms)
2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Ready] }
2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push :process-state) 4
2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push :threads) 4
2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push :process-state) 5
2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push :threads) 5
2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push :statistics) 1
2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push :sample) 1
2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-0 [Running (1/1 thread)] }
2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at taoensso.tower$format_msg.doInvoke(tower.clj:542)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
at clojure.lang.RestFn.invoke(RestFn.java:439)
at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
at net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
at net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
at clojure.lang.ARef.notifyWatches(ARef.java:98)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invoke(core.clj:2178)
at net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
at net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
at net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
at net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
at net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push :statistics) 2
2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push :sample) 2
^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}


There are other times this works for a period and then croaks, as in this, where it does not happen until 90+ samples in.

2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push :statistics) 86
2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push :sample) 86
2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push :statistics) 87
2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push :sample) 87
2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push :statistics) 88
2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push :sample) 88
2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push :statistics) 89
2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push :sample) 89
2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push :statistics) 90
2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push :sample) 90
2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push :statistics) 91
2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push :sample) 91
2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push :statistics) 92
2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push :sample) 92
2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] { Worker i-70cc4286-1 [Running (1/1 thread)] }
Exception in thread "Timer-0" java.lang.Exception: Invalid locale: 
at taoensso.tower$fn__1103.invoke(tower.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
at clojure.lang.RestFn.invoke(RestFn.java:408)


Environment (both nodes)
[grinder@grinderconsole ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderconsole ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


[grinder@grinderagent1 ~]$ env | grep UTF
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
[grinder@grinderagent1 ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[hidden email]> wrote:
Thanks for the report.

I've pushed a fix - let me know whether this works.

Building a SNAPSHOT from the tip of the source tree is always going to be adventurous. But I understand you are doing so to use the later version of Jython.

- Phil


On 20/04/15 16:15, Darren Ball wrote:
I am getting this error, and after talking to the owner of Tower, he is suggesting that this is something broken in grinder:

[grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh 

2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT

2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}



Anyone know why tower is reacting this way or how to fix this?

Darren






------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
grinder-use mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/grinder-use
Loading...