Skip to content

Commit

Permalink
Add Repro fro #405
Browse files Browse the repository at this point in the history
  • Loading branch information
fabianfett committed Aug 29, 2023
1 parent d89a723 commit 8f9a39d
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
11 changes: 11 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-crypto.git", "1.0.0" ..< "3.0.0"),
.package(url: "https://github.com/apple/swift-metrics.git", from: "2.0.0"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.5.2"),
.package(url: "https://github.com/swift-server/swift-backtrace.git", from: "1.3.3"),
],
targets: [
.target(
Expand Down Expand Up @@ -53,5 +54,15 @@ let package = Package(
.product(name: "NIOTestUtils", package: "swift-nio"),
]
),
.executableTarget(
name: "Repro",
dependencies: [
.target(name: "PostgresNIO"),
.product(name: "NIOCore", package: "swift-nio"),
.product(name: "NIOPosix", package: "swift-nio"),
.product(name: "Logging", package: "swift-log"),
.product(name: "Backtrace", package: "swift-backtrace"),
]
)
]
)
51 changes: 51 additions & 0 deletions Sources/Repro/Repro.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import PostgresNIO
import NIOCore
import Logging
import Backtrace

@main
enum Repro {
static func main() async throws {
Backtrace.install()

var mlogger = Logger(label: "psql")
mlogger.logLevel = .debug
let logger = mlogger

let eventLoopGroup = MultiThreadedEventLoopGroup(numberOfThreads: 1)
defer { try? eventLoopGroup.syncShutdownGracefully() }

do {
let connection = try await PostgresConnection.connect(
on: eventLoopGroup.next(),
configuration: .init(
host: "host.docker.internal",
username: "test_username",
password: "test_password",
database: "test_database",
tls: .disable
),
id: 1,
logger: logger
)

for i in 0..<100 {
let rows = try await connection.query("SELECT \(i)", logger: logger)
for try await row in rows.decode(Int.self) {
logger.info("Row received: \(row)")
}
}

try await connection.closeGracefully()
} catch {
logger.error("Error caught", metadata: ["error": "\(String(reflecting: error))"])
exit(1)
}

logger.info("Bye")

// try await ContinuousClock().sleep(until: .now + .seconds(120))

// try await client.shutdown(graceful: false)
}
}

0 comments on commit 8f9a39d

Please sign in to comment.