IBM Swift 沙盒的超时时间是多少?
What is the timeout on IBM's Swift Sandbox?
我 运行 遇到了一个问题,试图在 IBM's Swift Sandbox 上 运行 编码导致某种内部超时。
Swift Ver. 3.0.1 (Release)
Platform: Linux (x86_64)
Error running code:
WARNING: Your kernel does not support swap limit capabilities, memory limited without swap.
/swiftfiles/doit.sh: line 51: 42 Illegal instruction timeout ${TIMEOUT} .build/debug/TempCode
有问题的代码正在解码一个大的 Base64 编码字符串:
let base64EncodedInput = [really really long string]
let inputData = Data(base64Encoded: base64EncodedInput)!
let inputDecodedString = String(data: inputData, encoding: .utf8)!
let rowArray = inputDecodedString.components(separatedBy: "\n")
您可以在线查看完整的数据字符串和运行代码here。
我是否已将分配给 运行 我的 Swift 流程的时间用完了?什么是超时?
为了回答标题中的问题,我们实现了 10 秒的硬超时,但如果内存耗尽或堆栈溢出,代码可能会被更快地终止。但这并不是您在这里看到的问题。
经过一些调查,我们确定在您的沙盒 link 中创建超大字符串的 base 64 编码服务使用 \r\n
作为换行符而不是 \n
。由于似乎是 Foundation 中的错误,这会在您使用 let rowArray = inputDecodedString.components(separatedBy: "\n")
时导致错误。如果您改为使用 let rowArray = inputDecodedString.components(separatedBy: "\r\n")
,您应该会看到您的问题消失了。同时,我们将向 Foundation 提交问题。
您看到 timeout
的原因是我们返回 not-so-great 错误消息。 timeout ${TIMEOUT} .build/debug/TempCode
行是我们如何执行 Sandbox 用户代码的一部分,当该行失败时,我们将其作为错误消息的一部分返回。我们将致力于为将来减少混乱的错误消息。
编辑:事实证明这是一个已知错误。 https://bugs.swift.org/browse/SR-2483
我 运行 遇到了一个问题,试图在 IBM's Swift Sandbox 上 运行 编码导致某种内部超时。
Swift Ver. 3.0.1 (Release) Platform: Linux (x86_64) Error running code: WARNING: Your kernel does not support swap limit capabilities, memory limited without swap. /swiftfiles/doit.sh: line 51: 42 Illegal instruction timeout ${TIMEOUT} .build/debug/TempCode
有问题的代码正在解码一个大的 Base64 编码字符串:
let base64EncodedInput = [really really long string]
let inputData = Data(base64Encoded: base64EncodedInput)!
let inputDecodedString = String(data: inputData, encoding: .utf8)!
let rowArray = inputDecodedString.components(separatedBy: "\n")
您可以在线查看完整的数据字符串和运行代码here。
我是否已将分配给 运行 我的 Swift 流程的时间用完了?什么是超时?
为了回答标题中的问题,我们实现了 10 秒的硬超时,但如果内存耗尽或堆栈溢出,代码可能会被更快地终止。但这并不是您在这里看到的问题。
经过一些调查,我们确定在您的沙盒 link 中创建超大字符串的 base 64 编码服务使用 \r\n
作为换行符而不是 \n
。由于似乎是 Foundation 中的错误,这会在您使用 let rowArray = inputDecodedString.components(separatedBy: "\n")
时导致错误。如果您改为使用 let rowArray = inputDecodedString.components(separatedBy: "\r\n")
,您应该会看到您的问题消失了。同时,我们将向 Foundation 提交问题。
您看到 timeout
的原因是我们返回 not-so-great 错误消息。 timeout ${TIMEOUT} .build/debug/TempCode
行是我们如何执行 Sandbox 用户代码的一部分,当该行失败时,我们将其作为错误消息的一部分返回。我们将致力于为将来减少混乱的错误消息。
编辑:事实证明这是一个已知错误。 https://bugs.swift.org/browse/SR-2483