Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.71 KB | None | 0 0
  1. UNHANDLED EXCEPTION (2014-11-27 14:19:00.614269)
  2. Working directory: /opt/noc
  3. <type 'exceptions.ValueError'>
  4. year is out of range
  5. START OF TRACEBACK
  6. ------------------------------------------------------------------------
  7. File: /opt/noc/lib/scheduler/intervaljob.py (Line: 78)
  8. Function: get_next_aligned
  9. 71 """
  10. 72 t = int(time.time())
  11. 73 ts = (t // interval) * interval
  12. 74 if next or ts < t:
  13. 75 ts += interval
  14. 76 if offset:
  15. 77 ts += offset * interval
  16. 78 ==> return datetime.datetime.fromtimestamp(ts)
  17. 79
  18. 80 def get_interval(self):
  19. 81 return self.schedule["interval"]
  20. 82
  21. 83 def get_failed_interval(self):
  22. 84 return self.schedule.get("failed_interval",
  23. Variables:
  24. interval = 604800
  25. ts = 288575481600
  26. next = True
  27. t = 1417087140
  28. offset = 474798
  29. cls = <class 'noc.inv.discovery.jobs.version_inventory.VersionInventoryJob'>
  30. ------------------------------------------------------------------------
  31. File: /opt/noc/lib/scheduler/intervaljob.py (Line: 93)
  32. Function: get_schedule
  33. 86
  34. 87 def get_schedule(self, status):
  35. 88 if status == self.S_SUCCESS:
  36. 89 i = self.get_interval()
  37. 90 if not i:
  38. 91 return None # Zero interval means disabled job
  39. 92 offset = self.schedule["offset"] % i
  40. 93 ==> return self.get_next_aligned(i, next=True, offset=offset)
  41. 94 elif status == self.S_DEFERRED:
  42. 95 return None # Left until next initial submit
  43. 96 elif status == self.S_LATE and self.delay_interval:
  44. 97 return (datetime.datetime.now() +
  45. 98 datetime.timedelta(
  46. 99 seconds=random.random() * self.delay_interval))
  47. Variables:
  48. i = 604800
  49. status = 'S'
  50. self =
  51. <noc.inv.discovery.jobs.version_inventory.VersionInventoryJob object at 0x80eee2f90>
  52. offset = 474798
  53. ------------------------------------------------------------------------
  54. File: /opt/noc/lib/scheduler/scheduler.py (Line: 345)
  55. Function: _complete_job
  56. 338 group = job.get_group()
  57. 339 if group is not None:
  58. 340 with self.running_lock:
  59. 341 self.running_count[group] -= 1
  60. 342 if not self.running_count[group]:
  61. 343 del self.running_count[group]
  62. 344 on_complete = job.on_complete
  63. 345 ==> t = job.get_schedule(status)
  64. 346 if t is None:
  65. 347 # Unschedule job
  66. 348 self.remove_job(job.name, job.key)
  67. 349 else:
  68. 350 # Reschedule job
  69. 351 t1 = time.time()
  70. Variables:
  71. status = 'S'
  72. group = 'discovery-144'
  73. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  74. job =
  75. <noc.inv.discovery.jobs.version_inventory.VersionInventoryJob object at 0x80eee2f90>
  76. on_complete = []
  77. path = '/tmp/version_inventory/144'
  78. tb = None
  79. ------------------------------------------------------------------------
  80. File: /opt/noc/lib/scheduler/scheduler.py (Line: 330)
  81. Function: _job_wrapper
  82. 323 s = job.S_SUCCESS
  83. 324 else:
  84. 325 job.logger.info("Job failed (%fsec)",
  85. 326 time.time() - t0
  86. 327 )
  87. 328 job.on_failure()
  88. 329 s = job.S_FAILED
  89. 330 ==> self._complete_job(job, s, tb)
  90. 331
  91. 332 def _complete_job(self, job, status, tb):
  92. 333 self.metrics.jobs_time.timer(self.name, job.name, job.key).log(
  93. 334 job.started, time.time(), status)
  94. 335 if self.to_log_jobs:
  95. 336 path = os.path.join(self.log_jobs, job.name, str(job.key))
  96. Variables:
  97. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  98. job =
  99. <noc.inv.discovery.jobs.version_inventory.VersionInventoryJob object at 0x80eee2f90>
  100. t0 = 1417087140.596898
  101. s = 'S'
  102. r = True
  103. kwargs =
  104. {'object': <ManagedObject: cat-balakhna>,
  105. 'result': {'attributes': {'image': 'ME340x-METROIPACCESSK9-M'},
  106. 'platform': 'ME340x',
  107. 'vendor': 'Cisco',
  108. 'version': '12.2(60)EZ3'}}
  109. tb = None
  110. ------------------------------------------------------------------------
  111. File: /opt/noc/lib/scheduler/scheduler.py (Line: 304)
  112. Function: _run_job_handler
  113. 297 if job.threaded:
  114. 298 t = threading.Thread(target=self._job_wrapper,
  115. 299 args=(job,), kwargs=kwargs
  116. 300 )
  117. 301 t.daemon = True
  118. 302 t.start()
  119. 303 else:
  120. 304 ==> return self._job_wrapper(job, **kwargs)
  121. 305
  122. 306 def _job_wrapper(self, job, **kwargs):
  123. 307 tb = None
  124. 308 t0 = time.time()
  125. 309 job.logger.info("Running job handler")
  126. 310 try:
  127. Variables:
  128. job =
  129. <noc.inv.discovery.jobs.version_inventory.VersionInventoryJob object at 0x80eee2f90>
  130. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  131. kwargs =
  132. {'object': <ManagedObject: cat-balakhna>,
  133. 'result': {'attributes': {'image': 'ME340x-METROIPACCESSK9-M'},
  134. 'platform': 'ME340x',
  135. 'vendor': 'Cisco',
  136. 'version': '12.2(60)EZ3'}}
  137. ------------------------------------------------------------------------
  138. File: /opt/noc/lib/scheduler/scheduler.py (Line: 390)
  139. Function: complete_mrt_job
  140. 383 self.reschedule_job(job_name, key, ts, skip_running=True)
  141. 384
  142. 385 def complete_mrt_job(self, t):
  143. 386 job = self.active_mrt.pop(t)
  144. 387 for m in t.maptask_set.all():
  145. 388 if m.status == "C":
  146. 389 self._run_job_handler(job, object=m.managed_object,
  147. 390 ==> result=m.script_result)
  148. 391 else:
  149. 392 self.logger.info("Job %s(%s) is failed",
  150. 393 job.name, job.get_display_key())
  151. 394 self._complete_job(job, job.S_FAILED, m.script_result)
  152. 395 t.delete()
  153. 396
  154. Variables:
  155. job =
  156. <noc.inv.discovery.jobs.version_inventory.VersionInventoryJob object at 0x80eee2f90>
  157. m = <MapTask: 1110993: cat-balakhna Cisco.IOS.get_version>
  158. t = <ReduceTask: 1064623>
  159. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  160. ------------------------------------------------------------------------
  161. File: /opt/noc/lib/scheduler/scheduler.py (Line: 424)
  162. Function: run_pending
  163. 417 # Reschedule initial submit
  164. 418 self.initial_submit_next_check[jcls] = (
  165. 419 t0 + jcls.initial_submit_interval)
  166. 420 # Check for complete MRT
  167. 421 if self.active_mrt:
  168. 422 complete = [t for t in self.active_mrt if t.complete]
  169. 423 for t in complete:
  170. 424 ==> self.complete_mrt_job(t)
  171. 425 self.active_mrt = dict(
  172. 426 (t, self.active_mrt[t])
  173. 427 for t in self.active_mrt if t not in complete)
  174. 428 # Check for pending persistent tasks
  175. 429 q = {
  176. 430 self.ATTR_TS: {"$lte": datetime.datetime.now()},
  177. Variables:
  178. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  179. t = <ReduceTask: 1064623>
  180. complete = [<ReduceTask: 1064623>]
  181. n = 0
  182. ------------------------------------------------------------------------
  183. File: /opt/noc/lib/scheduler/scheduler.py (Line: 482)
  184. Function: run
  185. 475 self.ATTR_STATUS: self.S_RUN
  186. 476 }, {
  187. 477 "$set": {self.ATTR_STATUS: self.S_WAIT}
  188. 478 }, multi=True, safe=True)
  189. 479 self.ensure_indexes()
  190. 480 self.logger.info("Running scheduler")
  191. 481 while True:
  192. 482 ==> if not self.run_pending():
  193. 483 time.sleep(1)
  194. 484 else:
  195. 485 self.cleanup()
  196. 486
  197. 487 def get_faults(self, job_name, key=None):
  198. 488 """
  199. Variables:
  200. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x80e837d10>
  201. ------------------------------------------------------------------------
  202. File: /opt/noc/inv/discovery/daemon.py (Line: 37)
  203. Function: run
  204. 30
  205. 31 def run(self):
  206. 32 try:
  207. 33 PerformanceReportJob.submit(self.scheduler,
  208. 34 key="performance_report", interval=60)
  209. 35 except self.scheduler.JobExists:
  210. 36 pass
  211. 37 ==> self.scheduler.run()
  212. 38
  213. 39 def load_config(self):
  214. 40 super(DiscoveryDaemon, self).load_config()
  215. 41 self.load_beef_map()
  216. 42 log_jobs = self.config.get("main", "log_jobs") or None
  217. 43 self.scheduler.set_job_log(log_jobs)
  218. Variables:
  219. self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x80073a6d0>
  220. ------------------------------------------------------------------------
  221. File: /opt/noc/lib/daemon/base.py (Line: 413)
  222. Function: guarded_run
  223. 406
  224. 407 def guarded_run(self):
  225. 408 """
  226. 409 Run daemon and catch common exceptions
  227. 410 :return:
  228. 411 """
  229. 412 try:
  230. 413 ==> self.run()
  231. 414 except KeyboardInterrupt:
  232. 415 pass
  233. 416 except MemoryError:
  234. 417 self.logger.error("Out of memory. Exiting.")
  235. 418 except SystemExit:
  236. 419 self.logger.info("Exiting")
  237. Variables:
  238. self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x80073a6d0>
  239. ------------------------------------------------------------------------
  240. END OF TRACEBACK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement