ldbc / ldbc_snb_interactive_v1_impls

Reference implementations for LDBC Social Network Benchmark's Interactive workload.
https://ldbcouncil.org/benchmarks/snb-interactive
Apache License 2.0
97 stars 85 forks source link

postgres benchmark.sh hangs / java.lang.IllegalAccessError #383

Closed petere closed 1 year ago

petere commented 1 year ago

I'm on tags/1.0.0 with all default settings and using the test data inside the repository.

$ ./driver/benchmark.sh
Picked up JAVA_TOOL_OPTIONS: -Djava.awt.headless=true
ExecuteWorkloadMode  Driver Configuration
ExecuteWorkloadMode  Workload Start Time:   2023-05-01 - 11:22:14.265
Parameters:
    Mode:                           execute_benchmark
    Name:                           LDBC-SNB
    DB:                             org.ldbcouncil.snb.impls.workloads.postgres.interactive.PostgresInteractiveDb
    Workload:                       org.ldbcouncil.snb.driver.workloads.interactive.LdbcSnbInteractiveWorkload
    Operation Count:                250
    Warmup Count:                   100
    Skip Count:                     0
    Worker Threads:                 1
    Status Display Interval:        00:01.000 (m:s.ms)
    Time Unit:                      MILLISECONDS
    Results Directory:              /Users/peter/devel/ldbc/ldbc_snb_interactive_impls/postgres/results
    Time Compression Ratio:         0.0010000
    Validation Parameter Size:      0
    Validation Serialization Check: true
    Validation Database File:       null
    Spinner Sleep Duration:         00:00.001 (m:s.ms) / 1 (ms)
    Print Help:                     false
    Ignore Scheduled Start Times:   false
    User-defined parameters:
        databaseName = ldbcsnb
        endpoint = jdbc:postgresql://localhost:5432/ldbcsnb
        flush_log = false
        jdbcDriver = org.postgresql.ds.PGSimpleDataSource
        ldbc.snb.interactive.LdbcQuery10_enable = true
        ldbc.snb.interactive.LdbcQuery11_enable = true
        ldbc.snb.interactive.LdbcQuery12_enable = true
        ldbc.snb.interactive.LdbcQuery13_enable = true
        ldbc.snb.interactive.LdbcQuery14_enable = true
        ldbc.snb.interactive.LdbcQuery1_enable = true
        ldbc.snb.interactive.LdbcQuery2_enable = true
        ldbc.snb.interactive.LdbcQuery3_enable = true
        ldbc.snb.interactive.LdbcQuery4_enable = true
        ldbc.snb.interactive.LdbcQuery5_enable = true
        ldbc.snb.interactive.LdbcQuery6_enable = true
        ldbc.snb.interactive.LdbcQuery7_enable = true
        ldbc.snb.interactive.LdbcQuery8_enable = true
        ldbc.snb.interactive.LdbcQuery9_enable = true
        ldbc.snb.interactive.LdbcShortQuery1PersonProfile_enable = true
        ldbc.snb.interactive.LdbcShortQuery2PersonPosts_enable = true
        ldbc.snb.interactive.LdbcShortQuery3PersonFriends_enable = true
        ldbc.snb.interactive.LdbcShortQuery4MessageContent_enable = true
        ldbc.snb.interactive.LdbcShortQuery5MessageCreator_enable = true
        ldbc.snb.interactive.LdbcShortQuery6MessageForum_enable = true
        ldbc.snb.interactive.LdbcShortQuery7MessageReplies_enable = true
        ldbc.snb.interactive.LdbcUpdate1AddPerson_enable = true
        ldbc.snb.interactive.LdbcUpdate2AddPostLike_enable = true
        ldbc.snb.interactive.LdbcUpdate3AddCommentLike_enable = true
        ldbc.snb.interactive.LdbcUpdate4AddForum_enable = true
        ldbc.snb.interactive.LdbcUpdate5AddForumMembership_enable = true
        ldbc.snb.interactive.LdbcUpdate6AddPost_enable = true
        ldbc.snb.interactive.LdbcUpdate7AddComment_enable = true
        ldbc.snb.interactive.LdbcUpdate8AddFriendship_enable = true
        ldbc.snb.interactive.parameters_dir = ../postgres/test-data/substitution_parameters/
        ldbc.snb.interactive.scale_factor = 1
        ldbc.snb.interactive.short_read_dissipation = 0.2
        ldbc.snb.interactive.updates_dir = ../postgres/test-data/update_streams/
        log_delayed = true
        password = mysecretpassword
        peer_identifiers =
        printQueryNames = false
        printQueryResults = false
        printQueryStrings = false
        queryDir = queries
        results_log = true
        user = postgres
        workload_statistics = false

ExecuteWorkloadMode
 --------------------
 --- Warmup Phase ---
 --------------------
ExecuteWorkloadMode  Scanning workload streams to calculate their limits...
WorkloadStreams  Scanned 0 of 0 - OFFSET
WorkloadStreams  Scanned 105 of 100 - RUN
ExecuteWorkloadMode  Loaded workload: org.ldbcouncil.snb.driver.workloads.interactive.LdbcSnbInteractiveWorkload
ExecuteWorkloadMode  Retrieving workload stream: LdbcSnbInteractiveWorkload
Unable to load query from file: queries/interactive-complex-3-duration-as-function.sqlUnable to load query from file: queries/interactive-complex-4-duration-as-function.sqlUnable to load query from file: queries/interactive-complex-7-with-second.sqlUnable to load query from file: queries/interactive-update-1.sqlUnable to load query from file: queries/interactive-update-4.sqlUnable to load query from file: queries/interactive-update-6.sqlUnable to load query from file: queries/interactive-update-7.sqlUnable to load query from file: queries/interactive-update-6-add-post-content.sqlUnable to load query from file: queries/interactive-update-6-add-post-imagefile.sqlSLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
ExecuteWorkloadMode  Loaded DB: org.ldbcouncil.snb.impls.workloads.postgres.interactive.PostgresInteractiveDb
Exception in thread "main" java.lang.IllegalAccessError: class uk.co.real_logic.sbe.codec.java.DirectBuffer (in unnamed module @0x776d25b9) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x776d25b9
    at uk.co.real_logic.sbe.codec.java.DirectBuffer.wrap(DirectBuffer.java:104)
    at uk.co.real_logic.sbe.codec.java.DirectBuffer.<init>(DirectBuffer.java:57)
    at org.ldbcouncil.snb.driver.runtime.metrics.DisruptorSbeMetricsEvent$MetricsCollectionEventFactory.newInstance(DisruptorSbeMetricsEvent.java:48)
    at org.ldbcouncil.snb.driver.runtime.metrics.DisruptorSbeMetricsEvent$MetricsCollectionEventFactory.newInstance(DisruptorSbeMetricsEvent.java:41)
    at com.lmax.disruptor.RingBufferFields.fill(RingBuffer.java:84)
    at com.lmax.disruptor.RingBufferFields.<init>(RingBuffer.java:77)
    at com.lmax.disruptor.RingBuffer.<init>(RingBuffer.java:116)
    at com.lmax.disruptor.RingBuffer.createMultiProducer(RingBuffer.java:134)
    at com.lmax.disruptor.RingBuffer.create(RingBuffer.java:200)
    at com.lmax.disruptor.dsl.Disruptor.<init>(Disruptor.java:98)
    at org.ldbcouncil.snb.driver.runtime.metrics.DisruptorSbeMetricsService.<init>(DisruptorSbeMetricsService.java:65)
    at org.ldbcouncil.snb.driver.client.ExecuteWorkloadMode.doInit(ExecuteWorkloadMode.java:263)
    at org.ldbcouncil.snb.driver.client.ExecuteWorkloadMode.startExecutionAndAwaitCompletion(ExecuteWorkloadMode.java:105)
    at org.ldbcouncil.snb.driver.Client.main(Client.java:65)

At this point, it just hangs.

szarnyasg commented 1 year ago

Hello @petere, which Java version are you on? Based on some web searches, this is a Java 11 vs 17 issue. It is unclear to me which one is working: our CI uses Java 17 but the web sites I found point to Java 17 being the culprit behind this error. Which version are you on? (I use SDKman to quickly change between Java versions: https://sdkman.io/)

petere commented 1 year ago

I was using

openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment Homebrew (build 17.0.7+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.7+0, mixed mode, sharing)

If I use

openjdk version "11.0.19" 2023-04-18
OpenJDK Runtime Environment Homebrew (build 11.0.19+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.19+0, mixed mode)

then it works.

GLaDAP commented 1 year ago

Hi! The project readme is unclear about this at the moment. tags/1.0.0 uses Java 11 and the upcoming 2.0.0 will use Java 17. I will update the readmes shortly.

szarnyasg commented 1 year ago

Fixed by #386 and #389.