Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LoadService gets stuck recursively descending into /sys #309

Closed
groestl opened this issue Sep 19, 2014 · 10 comments
Closed

LoadService gets stuck recursively descending into /sys #309

groestl opened this issue Sep 19, 2014 · 10 comments

Comments

@groestl
Copy link

groestl commented Sep 19, 2014

When spinning up our server on a rackspace instance (uname "Linux 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64") the startup procedure gets stuck as soon as the finage client tries to set up LoadedStatsReceiver.

In the stack trace we see LoadService descending into a directory tree:

"main" prio=10 tid=0x00007f30b4010000 nid=0x7ff runnable [0x00007f30bdc00000]
   java.lang.Thread.State: RUNNABLE
    at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
    at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
    at java.io.File.isDirectory(File.java:843)
    at com.twitter.finagle.util.ClassPath$$anonfun$com$twitter$finagle$util$ClassPath$$browseDir$1.apply(LoadService.scala:87)
    at com.twitter.finagle.util.ClassPath$$anonfun$com$twitter$finagle$util$ClassPath$$browseDir$1.apply(LoadService.scala:86)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
--- repeated 69 times
    at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
    at com.twitter.finagle.util.ClassPath$.com$twitter$finagle$util$ClassPath$$browseDir(LoadService.scala:86)
    at com.twitter.finagle.util.ClassPath$$anonfun$com$twitter$finagle$util$ClassPath$$browseDir$1.apply(LoadService.scala:88)
    at com.twitter.finagle.util.ClassPath$$anonfun$com$twitter$finagle$util$ClassPath$$browseDir$1.apply(LoadService.scala:86)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
--- end repeat
    at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
    at com.twitter.finagle.util.ClassPath$.com$twitter$finagle$util$ClassPath$$browseDir(LoadService.scala:86)
    at com.twitter.finagle.util.ClassPath$.browseUri(LoadService.scala:75)
    at com.twitter.finagle.util.ClassPath$$anonfun$browse$2.apply(LoadService.scala:38)
    at com.twitter.finagle.util.ClassPath$$anonfun$browse$2.apply(LoadService.scala:37)
    at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
    at com.twitter.finagle.util.ClassPath$.browse(LoadService.scala:37)
    at com.twitter.finagle.util.LoadService$.apply(LoadService.scala:156)
    at com.twitter.finagle.stats.LoadedStatsReceiver$.<init>(LoadedStatsReceiver.scala:11)
    at com.twitter.finagle.stats.LoadedStatsReceiver$.<clinit>(LoadedStatsReceiver.scala)
    at com.twitter.finagle.stats.DefaultStatsReceiver$.<init>(StatsReceiver.scala:238)
    at com.twitter.finagle.stats.DefaultStatsReceiver$.<clinit>(StatsReceiver.scala)
    at com.twitter.finagle.thrift.Protocols$.binaryFactory$default$4(Protocols.scala:55)
    at com.twitter.finagle.thrift.ThriftClientFramedCodecFactory.<init>(ThriftClientFramedCodec.scala:40)
    at com.twitter.finagle.thrift.ThriftClientFramedCodecFactory.<init>(ThriftClientFramedCodec.scala:42)
    at xs.peng.modules.places.services.DefaultPlacesService.init(DefaultPlacesService.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1545)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    - locked <0x00000000d0ec8fe0> (a java.util.concurrent.ConcurrentHashMap)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    - locked <0x00000000d0f40458> (a java.lang.Object)
    at xs.peng.app.PengApplication.main(PengApplication.java:27)

and strace gives us an endless list of:

stat("/sys/devices/platform/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/serial8250/tty/ttyS17/device/tty/ttyS19/device/tty/ttyS17/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
stat("/sys/devices/platform/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/serial8250/tty/ttyS17/device/tty/ttyS19/device/tty/ttyS17/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
stat("/sys/devices/platform/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/serial8250/tty/ttyS17/device/tty/ttyS19/device/tty/ttyS17/subsystem", 0x7f5044247730) = -1 ELOOP (Too many levels of symbolic links)
stat("/sys/devices/platform/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/serial8250/tty/ttyS17/device/tty/ttyS19/device/tty/ttyS17/device", 0x7f5044247730) = -1 ELOOP (Too many levels of symbolic links)
...
@mosesn
Copy link
Contributor

mosesn commented Sep 19, 2014

Interesting. So it looks like you have a cycle in your directories (unless I'm misunderstanding). Would you like something where it remembers the paths of where symlinks have sent it and doesn't follow the symlink if it's familiar?

@groestl
Copy link
Author

groestl commented Sep 19, 2014

I'm actually puzzled what LoadService is trying to find in the /sys filesystem (which probably is an edge case for every directory traversing algorithm). Is LoadService touching the whole /?

@mosesn
Copy link
Contributor

mosesn commented Sep 19, 2014

Jesus christ I hope not. I figured you had put that on your classpath? What does it look like from here: https://github.com/twitter/finagle/blob/master/finagle-core/src/main/scala/com/twitter/finagle/util/LoadService.scala ?

@jdneumeyer77
Copy link

I encountered a similar problem after upgrading to 6.22. When starting tomcat with "service" command, i.e. service tomcat7 start, the war would hang at initializing finagle. Producing a threaddump, I found a similar stacktrace as OP. However, when using /etc/init.d/tomcat7 start; it would not hang. Service sets the current working directory to '/'; so, it would hit /sys and get stuck in '/sys' loop (pcspkr for me...). The daemon init.d scripts would use whatever directory you're currently in. Running the init.d script from '/' will cause the same problem.

@mosesn
Copy link
Contributor

mosesn commented Feb 4, 2015

OK, I guess if folks setting / as cwd is a real thing, we should maybe exclude /sys explicitly? @revisiond, @groestl would one of you like to make a pull request?

LithiumTD pushed a commit to LithiumTD/finagle that referenced this issue Jul 30, 2015
Problem

The problem being fixed here is something we ran into while working with finagle in our application similar to the issue posted in the following issue twitter#309. In our case it was not the /sys directory however but an extremely huge FS mounted on the project root and LoadService was getting stuck descending into that directory structure everytime.

Solution

This pull request adds the ability to add additional packages/paths to the 'ignoredPackages' sequence in LoadService via a method called 'addIgnoredPaths' in LoadService. This method can take a single or multiple paths as String arguments and add them to the private sequence (which is now mutable).

Result

After this change, users would be able to customize the ignoredPackages for the recursive directory scan that LoadService performs (in several flows) and avoid getting stuck in directory structures that they do not want scanned.
mariusae pushed a commit that referenced this issue Aug 10, 2015
The problem being fixed here is something we ran into while working
with finagle in our application similar to the issue posted in the
following issue #309. In our case it was not the /sys directory
however but an extremely huge FS mounted on the project root and
LoadService was getting stuck descending into that directory structure
everytime.

Solution

This pull request adds the ability to add additional packages/paths to
the 'ignoredPackages' sequence in LoadService via a GlobalFlag
`com.twitter.finagle.util.loadServiceIgnoredPaths`. This flag can one
or more paths as String arguments and add them to the private sequence
(which is now mutable).

Result

After this change, users would be able to customize the
ignoredPackages for the recursive directory scan that LoadService
performs (in several flows) and avoid getting stuck in directory
structures that they do not want scanned.

RB_ID=724361
jbripley pushed a commit to jbripley/finagle that referenced this issue Oct 28, 2015
The problem being fixed here is something we ran into while working
with finagle in our application similar to the issue posted in the
following issue twitter#309. In our case it was not the /sys directory
however but an extremely huge FS mounted on the project root and
LoadService was getting stuck descending into that directory structure
everytime.

Solution

This pull request adds the ability to add additional packages/paths to
the 'ignoredPackages' sequence in LoadService via a GlobalFlag
`com.twitter.finagle.util.loadServiceIgnoredPaths`. This flag can one
or more paths as String arguments and add them to the private sequence
(which is now mutable).

Result

After this change, users would be able to customize the
ignoredPackages for the recursive directory scan that LoadService
performs (in several flows) and avoid getting stuck in directory
structures that they do not want scanned.

RB_ID=724361
@mosesn
Copy link
Contributor

mosesn commented May 27, 2016

I think #351 fixes this, but please reopen if you have further problems!

@mosesn mosesn closed this as completed May 27, 2016
@bymzy
Copy link

bymzy commented Jun 26, 2019

this seems to happen to me .

i am using tranquility-core_2.11:0.83 and it depends on finagle-6.43.0 @mosesn

here is what strace shows

[pid 2231848] stat("/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679946/cwd/proc/3372439/task/3373015/fd/305", 0x7fe29d5d1460) = -1 ELOOP (Too many levels of symbolic links)
[pid 2231848] stat("/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679946/cwd/proc/3372439/task/3373015/fd/306", 0x7fe29d5d1460) = -1 ELOOP (Too many levels of symbolic links)
[pid 2231848] stat("/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679940/cwd/proc/self/task/1679946/cwd/proc/3372439/task/3373015/fd/307", 0x7fe29d5d1460) = -1 ELOOP (Too many levels of symbolic links)

@bymzy
Copy link

bymzy commented Jun 28, 2019

@jdneumeyer77 is right,i restart my program in /root and it works fine

@lwmonster
Copy link

lwmonster commented Jul 27, 2022

@mosesn It happened again...
with finagle-thrift_2.11-6.36.0.jar

"resin-port-9527-162" #162 daemon prio=5 os_prio=0 tid=0x00007fe0440b5110 nid=0x2ea26 runnable [0x00007fde222c9000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.isDirectory(File.java:849)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:118)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.com$twitter$app$ClassPath$$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$$anonfun$com$twitter$app$ClassPath$$browseDir$1.apply(ClassPath.scala:117)

@lwmonster
Copy link

We make it work by change the dir when starting the service, I don't think it's a good way to resolve the problem.

@mosesn It happened again... with finagle-thrift_2.11-6.36.0.jar

"resin-port-9527-162" #162 daemon prio=5 os_prio=0 tid=0x00007fe0440b5110 nid=0x2ea26 runnable [0x00007fde222c9000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.isDirectory(File.java:849)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:118)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
at com.twitter.app.ClassPath.comtwitter$browseDir(ClassPath.scala:117)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:119)
at com.twitter.app.ClassPath$anonfun$browseDir$1.apply(ClassPath.scala:117)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

5 participants