Closed kaarelk closed 9 years ago
Please add some more details, like:
If there's an actual stack-trace message, please include it.
Thanks!
Running Centos 5.8, python 2.4 with latest graphite 0.9.10 with whisper backend.
Error message in console.log:
28/03/2013 12:41:23 :: Sorted 8771 cache queues in 0.002869 seconds
28/03/2013 12:41:23 :: Unhandled Error
Traceback (most recent call last):
File "/usr/lib64/python2.4/threading.py", line 422, in run
self.target(_self.__args, *_self.kwargs)
File "/usr/lib64/python2.4/site-packages/twisted/python/threadpool.py", line 210, in _worker
result = context.call(ctx, function, _args, _kwargs)
File "/usr/lib64/python2.4/site-packages/twisted/python/context.py", line 59, in callWithContext
return self.currentContext().callWithContext(ctx, func, _args, _kw)
File "/usr/lib64/python2.4/site-packages/twisted/python/context.py", line 37, in callWithContext
return func(args,*kw)
---
I use a lengthy namespace. @kaarelk might you share the full file name? Feel free to obfuscate when needed.
It's easy to reproduce. e.g:
File "/usr/lib/python2.4/site-packages/whisper.py", line 327, in create fh = open(path,'wb') exceptions.IOError: [Errno 36] File name too long: '/opt/local/graphite/storage/whisper/test/test-asdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf-asdfadfasdfasdfasdf/0/24HourRate.wsp'
I am dealing with the same issue as well:
09/10/2013 02:25:19 :: Sorted 122859 cache queues in 0.115664 seconds
09/10/2013 02:25:19 :: /etc/carbon/storage-aggregation.conf not found, ignoring.
09/10/2013 02:26:19 :: /etc/carbon/storage-aggregation.conf not found, ignoring.
09/10/2013 02:26:22 :: Unhandled Error
Traceback (most recent call last):
File "/usr/lib64/python2.6/threading.py", line 484, in run
self.target(_self.__args, *_self.kwargs)
File "/usr/lib64/python2.6/site-packages/twisted/python/threadpool.py", line 210, in _worker
result = context.call(ctx, function, _args, _kwargs)
File "/usr/lib64/python2.6/site-packages/twisted/python/context.py", line 59, in callWithContext
return self.currentContext().callWithContext(ctx, func, _args, _kw)
File "/usr/lib64/python2.6/site-packages/twisted/python/context.py", line 37, in callWithContext
return func(args,*kw)
---
The pull request is a workaround for occasional invalid metric names. You should always try to send valid names. Note that most of the filesystems have 255 character limit for file names.
thanks @kaarelk
for anyone else having this issue we got around it by using a blacklist entry [\w-]{256,}
Blacklist wastes a lot of cpu
I encountered the same problem. And it will cause the graphite webapp crash.
27/09/2014 23:57:28 :: "[Errno 36] File name too long: '/data1/graphite/storage/whisper/stats/openapi/dm_web/host/oweb004/dm/wbapi/yf/sinanode/com/api/-2-direct_messages-user_list_jsoncount25count25count25uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667'" 27/09/2014 23:57:28 :: Unhandled Error Traceback (most recent call last): File "/usr/lib64/python2.6/threading.py", line 484, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib64/python2.6/site-packages/twisted/python/threadpool.py", line 207, in _worker result = context.call(ctx, function, *args, **kwargs) File "/usr/lib64/python2.6/site-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib64/python2.6/site-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) --- <exception caught here> --- File "/opt/graphite/lib/carbon/writer.py", line 149, in writeForever writeCachedDataPoints() File "/opt/graphite/lib/carbon/writer.py", line 121, in writeCachedDataPoints settings.WHISPER_FALLOCATE_CREATE) File "/usr/lib/python2.6/site-packages/whisper.py", line 363, in create fh = open(path,'wb') exceptions.IOError: [Errno 36] File name too long: '/data1/graphite/storage/whisper/stats/openapi/dm_web/host/oweb004/dm/wbapi/yf/sinanode/com/api/-2-direct_messages-user_list_jsoncount25count25count25uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667uid1788775667/400.wsp'
Carbon-cache will eat up all cpu when following error happens:
exceptions.IOError: [Errno 36] File name too long:
It should discard the metric instead.