Skip to content
Snippets Groups Projects
Commit b912519f authored by Jono Wenger's avatar Jono Wenger
Browse files

add debug logs

parent 0cea60fa
No related branches found
No related tags found
1 merge request!430XX-4277 / Fix file transfer crashes
...@@ -172,13 +172,11 @@ func InitFileTransfer(e2eID int, receiveFileCallback ReceiveFileCallback, ...@@ -172,13 +172,11 @@ func InitFileTransfer(e2eID int, receiveFileCallback ReceiveFileCallback,
return nil, err return nil, err
} }
jww.INFO.Printf("[FT] Before AddService")
// Add file transfer processes to API services tracking // Add file transfer processes to API services tracking
err = user.api.AddService(m.StartProcesses) err = user.api.AddService(m.StartProcesses)
if err != nil { if err != nil {
return nil, err return nil, err
} }
jww.INFO.Printf("[FT] After AddService")
// Return wrapped manager // Return wrapped manager
return &FileTransfer{w: w}, nil return &FileTransfer{w: w}, nil
...@@ -211,6 +209,7 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32, ...@@ -211,6 +209,7 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
p := time.Millisecond * time.Duration(period) p := time.Millisecond * time.Duration(period)
jww.INFO.Printf("** FileTransfer.Send before building CB")
// Wrap transfer progress callback to be passed to fileTransfer layer // Wrap transfer progress callback to be passed to fileTransfer layer
cb := func(completed bool, arrived, total uint16, cb := func(completed bool, arrived, total uint16,
st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) { st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) {
...@@ -229,19 +228,22 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32, ...@@ -229,19 +228,22 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
} }
// Unmarshal payload // Unmarshal payload
fs := &FileSend{} jww.INFO.Printf("** FileTransfer.Send before unmarshal FileSend")
err = json.Unmarshal(payload, fs) var fs FileSend
if err != nil { if err = json.Unmarshal(payload, &fs); err != nil {
return nil, err return nil, err
} }
// Send file // Send file
ftID, err := f.w.Send(recipient, fs.Name, fs.Type, fs.Contents, retry, fs.Preview, cb, p) jww.INFO.Printf("** FileTransfer.Send before send")
ftID, err := f.w.Send(
recipient, fs.Name, fs.Type, fs.Contents, retry, fs.Preview, cb, p)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// Return Transfer ID // Return Transfer ID
jww.INFO.Printf("** FileTransfer.Send before return")
return ftID.Bytes(), nil return ftID.Bytes(), nil
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
package e2e package e2e
import ( import (
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/catalog" "gitlab.com/elixxir/client/catalog"
"gitlab.com/elixxir/client/e2e" "gitlab.com/elixxir/client/e2e"
"gitlab.com/elixxir/client/e2e/receive" "gitlab.com/elixxir/client/e2e/receive"
...@@ -90,12 +91,15 @@ func (w *Wrapper) Send(recipient *id.ID, fileName, fileType string, ...@@ -90,12 +91,15 @@ func (w *Wrapper) Send(recipient *id.ID, fileName, fileType string,
progressCB ft.SentProgressCallback, period time.Duration) ( progressCB ft.SentProgressCallback, period time.Duration) (
*ftCrypto.TransferID, error) { *ftCrypto.TransferID, error) {
jww.INFO.Printf("** Wrapper.Send before SendNew creation")
sendNew := func(transferInfo []byte) error { sendNew := func(transferInfo []byte) error {
return sendNewFileTransferMessage(recipient, transferInfo, w.e2e) return sendNewFileTransferMessage(recipient, transferInfo, w.e2e)
} }
jww.INFO.Printf("** Wrapper.Send before addEndMessageToCallback")
modifiedProgressCB := w.addEndMessageToCallback(progressCB) modifiedProgressCB := w.addEndMessageToCallback(progressCB)
jww.INFO.Printf("** Wrapper.Send before send")
return w.ft.Send(recipient, fileName, fileType, fileData, retry, preview, return w.ft.Send(recipient, fileName, fileType, fileData, retry, preview,
modifiedProgressCB, period, sendNew) modifiedProgressCB, period, sendNew)
} }
...@@ -115,9 +119,13 @@ func (w *Wrapper) RegisterSentProgressCallback(tid *ftCrypto.TransferID, ...@@ -115,9 +119,13 @@ func (w *Wrapper) RegisterSentProgressCallback(tid *ftCrypto.TransferID,
// message is not sent. // message is not sent.
func (w *Wrapper) addEndMessageToCallback( func (w *Wrapper) addEndMessageToCallback(
progressCB ft.SentProgressCallback) ft.SentProgressCallback { progressCB ft.SentProgressCallback) ft.SentProgressCallback {
jww.INFO.Printf("** Wrapper.addEndMessageToCallback before !w.p.NotifyUponCompletion")
if !w.p.NotifyUponCompletion { if !w.p.NotifyUponCompletion {
jww.INFO.Printf("** Wrapper.addEndMessageToCallback after !w.p.NotifyUponCompletion")
return progressCB return progressCB
} }
jww.INFO.Printf("** Wrapper.addEndMessageToCallback before return")
return func(completed bool, arrived, total uint16, return func(completed bool, arrived, total uint16,
st ft.SentTransfer, t ft.FilePartTracker, err error) { st ft.SentTransfer, t ft.FilePartTracker, err error) {
......
...@@ -270,6 +270,10 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string, ...@@ -270,6 +270,10 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string,
progressCB SentProgressCallback, period time.Duration, sendNew SendNew) ( progressCB SentProgressCallback, period time.Duration, sendNew SendNew) (
*ftCrypto.TransferID, error) { *ftCrypto.TransferID, error) {
jww.INFO.Printf(
"** Sending file transfer %q to %s. fileType:%s retry:%f preview:%q",
fileName, recipient, fileType, retry, preview)
// Return an error if the file name is too long // Return an error if the file name is too long
if len(fileName) > FileNameMaxLen { if len(fileName) > FileNameMaxLen {
return nil, errors.Errorf(errFileNameSize, len(fileName), FileNameMaxLen) return nil, errors.Errorf(errFileNameSize, len(fileName), FileNameMaxLen)
...@@ -291,17 +295,21 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string, ...@@ -291,17 +295,21 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string,
} }
// Return an error if the network is not healthy // Return an error if the network is not healthy
jww.INFO.Printf("** manager.Send before IsHealthy")
if !m.cmix.IsHealthy() { if !m.cmix.IsHealthy() {
return nil, errors.Errorf(errSendNetworkHealth, fileName) return nil, errors.Errorf(errSendNetworkHealth, fileName)
} }
// Generate new transfer key and transfer ID // Generate new transfer key and transfer ID
jww.INFO.Printf("** manager.Send before GetStream")
rng := m.rng.GetStream() rng := m.rng.GetStream()
jww.INFO.Printf("** manager.Send before NewTransferKey")
key, err := ftCrypto.NewTransferKey(rng) key, err := ftCrypto.NewTransferKey(rng)
if err != nil { if err != nil {
rng.Close() rng.Close()
return nil, errors.Errorf(errNewKey, err) return nil, errors.Errorf(errNewKey, err)
} }
jww.INFO.Printf("** manager.Send before NewTransferID")
tid, err := ftCrypto.NewTransferID(rng) tid, err := ftCrypto.NewTransferID(rng)
if err != nil { if err != nil {
rng.Close() rng.Close()
...@@ -310,15 +318,18 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string, ...@@ -310,15 +318,18 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string,
rng.Close() rng.Close()
// Generate transfer MAC // Generate transfer MAC
jww.INFO.Printf("** manager.Send before CreateTransferMAC")
mac := ftCrypto.CreateTransferMAC(fileData, key) mac := ftCrypto.CreateTransferMAC(fileData, key)
// Get size of each part and partition file into equal length parts // Get size of each part and partition file into equal length parts
jww.INFO.Printf("** manager.Send before NewPartMessage")
partMessage := fileMessage.NewPartMessage(m.cmix.GetMaxMessageLength()) partMessage := fileMessage.NewPartMessage(m.cmix.GetMaxMessageLength())
parts := partitionFile(fileData, partMessage.GetPartSize()) parts := partitionFile(fileData, partMessage.GetPartSize())
numParts := uint16(len(parts)) numParts := uint16(len(parts))
fileSize := uint32(len(fileData)) fileSize := uint32(len(fileData))
// Send the initial file transfer message over E2E // Send the initial file transfer message over E2E
jww.INFO.Printf("** manager.Send before TransferInfo")
info := &TransferInfo{ info := &TransferInfo{
fileName, fileType, key, mac, numParts, fileSize, retry, preview} fileName, fileType, key, mac, numParts, fileSize, retry, preview}
transferInfo, err := info.Marshal() transferInfo, err := info.Marshal()
...@@ -334,6 +345,7 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string, ...@@ -334,6 +345,7 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string,
} }
// Calculate the number of fingerprints to generate // Calculate the number of fingerprints to generate
jww.INFO.Printf("** manager.Send before calcNumberOfFingerprints")
numFps := calcNumberOfFingerprints(len(parts), retry) numFps := calcNumberOfFingerprints(len(parts), retry)
// Create new sent transfer // Create new sent transfer
...@@ -355,9 +367,11 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string, ...@@ -355,9 +367,11 @@ func (m *manager) Send(recipient *id.ID, fileName, fileType string,
for _, p := range st.GetUnsentParts() { for _, p := range st.GetUnsentParts() {
m.batchQueue <- p m.batchQueue <- p
} }
jww.INFO.Printf("** manager.Send before registerSentProgressCallback")
// Register the progress callback // Register the progress callback
m.registerSentProgressCallback(st, progressCB, period) m.registerSentProgressCallback(st, progressCB, period)
jww.INFO.Printf("** manager.Send before return")
return &tid, nil return &tid, nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment