Description

This page will help you to find a solution, if your snapshot is failing and the below mentioned error is found in the Cast-MSx.log.txt file. 

ERROR: could not write to hash-join temporary file: No space left on device
 Where: SQL statement "insert into DSS_CodePath
 ( PathId ,StepIndex, StepDepth, SourceId, StartLine, FinishLine, ContainerId)
 select distinct scope.PathId, scope.ScopeIndex , scope.ScopeIndex + 1 , s.SOURCE_ID, (obj.Info1+book.Info1)-1 , (obj.Info1+book.Info3)-1 ,scope.ContainerId
 from WK_SCOPE_EXPENSIVEPATH scope

This error is encountered when the execution of procedure DIA_JEEPATH_GENERATE consumes all the available disk space.


The error message in the analysis log that occurs is here:

ERR: 2017-07-06 23:24:48: Error while executing Procedure
                            com.castsoftware.java.InternalException:Error while executing Procedure
                              com.castsoftware.connection.JdbcConnection.executeProcedure(JdbcConnection.java:971)
                              com.castsoftware.dssengine.Operation.executeOperation(Operation.java:719)
                              com.castsoftware.dssengine.LocalSite.computeLocalSnapshot(LocalSite.java:833)
                              com.castsoftware.dssengine.Engine.computeSnapshot(Engine.java:586)
                              com.castsoftware.pmc.dashboard.dssengine.RunDSSEngine.documentExecute(RunDSSEngine.java:211)
                              com.castsoftware.mda.impl.MemoryTask.execute(MemoryTask.java:86)
                              com.castsoftware.java.treatment.Task.run(Task.java:377)
                              com.castsoftware.java.treatment.Task.runChildren(Task.java:582)
                              com.castsoftware.pmc.actions.snapshot.SnapshotGenerator.documentExecute(SnapshotGenerator.java:128)
                              com.castsoftware.mda.impl.MemoryTask.execute(MemoryTask.java:86)
                              com.castsoftware.java.treatment.Task.run(Task.java:377)
                              com.castsoftware.java.treatment.Task.runChildren(Task.java:582)
                              com.castsoftware.mda.impl.MemoryAction.execute(MemoryAction.java:272)
                              com.castsoftware.pmc.actions.snapshot.GenerateSnapshot.execute(GenerateSnapshot.java:613)
                              com.castsoftware.mda.impl.MemoryAction.topExecute(MemoryAction.java:265)
                              com.castsoftware.mda.impl.MemoryAction$MemoryActionTask.documentExecute(MemoryAction.java:383)
                              com.castsoftware.mda.impl.MemoryTask.execute(MemoryTask.java:86)
                              com.castsoftware.java.treatment.Task.run(Task.java:377)
                              com.castsoftware.java.treatment.execution.TaskExecutor$TaskMainThread.run(TaskExecutor.java:103)
                              java.lang.Thread.run(Thread.java:744)
ERROR: could not write block 119816717 of temporary file: No space left on device
Hint: Perhaps out of disk space?
                              Where: SQL statement "insert into DSS_CodePath
                              ( PathId ,StepIndex, StepDepth, SourceId, StartLine, FinishLine, ContainerId)
                              select  distinct scope.PathId, scope.ScopeIndex , scope.ScopeIndex + 1   , s.SOURCE_ID,  (obj.Info1+book.Info1)-1  , (obj.Info1+book.Info3)-1  ,scope.ContainerId
                              from WK_SCOPE_EXPENSIVEPATH scope
                              ----- Lookup the source id
                              join ObjFilRef f        on f.IdObj       = scope.ContainerId
                              join RefPath r          on r.IdFilRef    = f.IdFilRef
                              join DSS_CODE_SOURCES s on s.SOURCE_PATH = r.Path
                              --- lookup object position
                              join ObjPos obj         on obj.IdObjRef   = f.IdFil
                              and obj.IdObj      = scope.ContainerId
                              ---- lookup link position
                              join AccBook book       on book.IdAcc     = scope.IdAcc
                              and book.BlkNo    = obj.IdObjRef
                              and book.Prop     = obj.Prop
                              --- same application
                              join ObjPro projet      on projet.IdPro   = scope.ProjectId
                              and projet.IdObj   = obj.IdObjRef"
                              PL/pgSQL function dia_jeepath_generate(integer,integer,integer,integer) line 82 at SQL statement
                              PL/pgSQL function dia_java_strconcatinloop(integer,integer,integer,integer) line 17 at assignment
org.postgresql.util.PSQLException:ERROR: could not write block 119816717 of temporary file: No space left on device
  Hint: Perhaps out of disk space?

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)  (x < 1)
8.2.x (tick)  ( x < 7)
8.1.x (tick) 
8.0.x(tick)
7.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No
Oracle Server(error)
Microsoft SQL Server(error)
CSS3(tick)
CSS2(tick)
Step by Step Scenario

Take the snapshot of an application

Impact on Analysis Results and Dashboard

Snapshot fails

Action Plan

This error is encountered when the execution of procedure DIA_JEEPATH_GENERATE consumes all the available disk space.

The solution is to

  1. Replace the procedure by the optimized version of DIA_JEEPATH_GENERATE in Knowledge Base.

The optimized version will be integrated to version 8.2.7 (issue fixed in 8.2.7)

Notes/comments

Ticket # 9422

Related Pages