Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-sectorbuilder
Commits
af914f02
Commit
af914f02
authored
Jan 23, 2020
by
Łukasz Magiera
Browse files
precommit: Check for existing seal
parent
774d1987
Changes
1
Hide whitespace changes
Inline
Side-by-side
sectorbuild_cgo.go
View file @
af914f02
...
@@ -137,6 +137,41 @@ func (sb *SectorBuilder) ReadPieceFromSealedSector(sectorID uint64, offset uint6
...
@@ -137,6 +137,41 @@ func (sb *SectorBuilder) ReadPieceFromSealedSector(sectorID uint64, offset uint6
func
(
sb
*
SectorBuilder
)
SealPreCommit
(
ctx
context
.
Context
,
sectorID
uint64
,
ticket
SealTicket
,
pieces
[]
PublicPieceInfo
)
(
RawSealPreCommitOutput
,
error
)
{
func
(
sb
*
SectorBuilder
)
SealPreCommit
(
ctx
context
.
Context
,
sectorID
uint64
,
ticket
SealTicket
,
pieces
[]
PublicPieceInfo
)
(
RawSealPreCommitOutput
,
error
)
{
fs
:=
sb
.
filesystem
fs
:=
sb
.
filesystem
cacheDir
,
err
:=
sb
.
sectorCacheDir
(
sectorID
)
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"getting cache dir: %w"
,
err
)
}
if
_
,
err
:=
os
.
Stat
(
cacheDir
);
!
os
.
IsNotExist
(
err
)
{
// TODO: can we read t_aux or p_aux to check if we have the correct thing sealed here already?
// (need to check ticket)
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"stat cache dir: %w"
,
err
)
}
log
.
Warnf
(
"precommit: found cache dir %s, cleaning up"
,
cacheDir
)
if
err
:=
os
.
RemoveAll
(
cacheDir
);
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"removing cache dir %s: %w"
,
cacheDir
,
err
)
}
}
sealedPath
,
err
:=
sb
.
SealedSectorPath
(
sectorID
)
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"getting sealed sector path: %w"
,
err
)
}
if
_
,
err
:=
os
.
Stat
(
sealedPath
);
!
os
.
IsNotExist
(
err
)
{
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"stat cache dir: %w"
,
err
)
}
log
.
Warnf
(
"precommit: found sealed sector %s, cleaning up"
,
sealedPath
)
if
err
:=
os
.
Remove
(
sealedPath
);
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"removing sealed sector %s: %w"
,
sealedPath
,
err
)
}
}
if
err
:=
fs
.
reserve
(
dataCache
,
sb
.
ssize
);
err
!=
nil
{
if
err
:=
fs
.
reserve
(
dataCache
,
sb
.
ssize
);
err
!=
nil
{
return
RawSealPreCommitOutput
{},
err
return
RawSealPreCommitOutput
{},
err
}
}
...
@@ -189,16 +224,6 @@ func (sb *SectorBuilder) SealPreCommit(ctx context.Context, sectorID uint64, tic
...
@@ -189,16 +224,6 @@ func (sb *SectorBuilder) SealPreCommit(ctx context.Context, sectorID uint64, tic
<-
sb
.
rateLimit
<-
sb
.
rateLimit
}()
}()
cacheDir
,
err
:=
sb
.
sectorCacheDir
(
sectorID
)
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"getting cache dir: %w"
,
err
)
}
sealedPath
,
err
:=
sb
.
SealedSectorPath
(
sectorID
)
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"getting sealed sector path: %w"
,
err
)
}
e
,
err
:=
os
.
OpenFile
(
sealedPath
,
os
.
O_RDWR
|
os
.
O_CREATE
,
0644
)
e
,
err
:=
os
.
OpenFile
(
sealedPath
,
os
.
O_RDWR
|
os
.
O_CREATE
,
0644
)
if
err
!=
nil
{
if
err
!=
nil
{
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"ensuring sealed file exists: %w"
,
err
)
return
RawSealPreCommitOutput
{},
xerrors
.
Errorf
(
"ensuring sealed file exists: %w"
,
err
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment