Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    rajakumarjk1
    @rajakumarjk1

    Hi,
    When I import hollow-reference-implementation gradle project into my Eclipse workspace after cloning it from https://github.com/Netflix/hollow-reference-implementation, I am
    getting below error.

    FAILURE: Build failed with an exception.

    • Where:
      Build file 'C:\WS\Git\TCCache-Hollow\hollow-reference-implementation\build.gradle' line: 7

    • What went wrong:
      Plugin [id: 'nebula.info', version: '3.6.0'] was not found in any of the following sources:

    • Gradle Core Plugins (plugin is not in 'org.gradle' namespace)

    • Plugin Repositories (could not resolve plugin artifact 'nebula.info:nebula.info.gradle.plugin:3.6.0')
      Searched in the following repositories:
      Gradle Central Plugin Repository

    • Try:

      Run with --stacktrace option to get the stack trace.
      Run with --info or --debug option to get more log output.
      Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

    See https://docs.gradle.org/7.3/userguide/command_line_interface.html#sec:command_line_warnings

    CONFIGURE FAILED in 41ms

    Configure project :
    Inferred project: hollow-reference-implementation, version: 0.1.0-SNAPSHOT

    FAILURE: Build failed with an exception.

    • Where:
      Build file 'C:\WS\Git\TCCache-Hollow\hollow-reference-implementation\build.gradle' line: 6

    • What went wrong:
      An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '3.5.2']

      Failed to apply plugin class 'nebula.plugin.info.dependencies.DependenciesInfoPlugin'.
      Could not create plugin of type 'DependenciesInfoPlugin'.
      No signature of method: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.DefaultVersionComparator.asStringComparator() is applicable for argument types: () values: []

        Possible solutions: asVersionComparator()
    • Try:

      Run with --stacktrace option to get the stack trace.
      Run with --info or --debug option to get more log output.
      Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

    See https://docs.gradle.org/7.3/userguide/command_line_interface.html#sec:command_line_warnings

    CONFIGURE FAILED in 146ms

    Could you please help to fix above issue to import the hollow project in to my Eclipse workspace?
    Yoni BenDayan
    @yonibendayan

    Hey all,
    Im want to restore a producer from an exsisting running consumer like this:

     producer.getValue().getWriteEngine().restoreFrom(consumer.getStateEngine());

    and when a new cycle is starting that is updating exsisting key, the data gets duplicated instead of updated.
    up until now we are successfully using this function:

    producer.restore(announcementWatcher.getLatestVersion(),blobRetriever));

    but this function creates a consumer by itself and i want to restore the producer from another consumer.

    The main difference I saw is that the restore function is that at the end of the restore if it is successful the object mapper of the producer will replace it's write state to the new one, but since it's a private param i'm unable to do so myself.

    my question is if there is a better way to achieve that or should I open an issue?
    Thanks!

    mailsanchu
    @mailsanchu
    @Sunjeet We are seeing a very decent performance from SHARED_MEMORY_LAZY blob. Do you see any issues using that in production?
    19 replies
    Henry Mai
    @maiakhoa
    java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
        at com.netflix.hollow.api.producer.HollowIncrementalCyclePopulator.addRecords(HollowIncrementalCyclePopulator.java:144) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowIncrementalCyclePopulator.populate(HollowIncrementalCyclePopulator.java:53) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowProducer.runCycle(HollowProducer.java:438) [golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowProducer.runCycle(HollowProducer.java:390) [golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowIncrementalProducer.runCycle(HollowIncrementalProducer.java:206) [golftec-api-1.0-jar-with-dependencies.jar:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_292]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_292]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_292]
    Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.8.0_292]
        at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[na:1.8.0_292]
        at com.netflix.hollow.core.util.SimultaneousExecutor.awaitSuccessfulCompletion(SimultaneousExecutor.java:118) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowIncrementalCyclePopulator.addRecords(HollowIncrementalCyclePopulator.java:142) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        ... 10 common frames omitted
    Caused by: java.lang.NullPointerException: null
        at com.netflix.hollow.core.write.objectmapper.HollowObjectTypeMapper.write(HollowObjectTypeMapper.java:170) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.core.write.objectmapper.HollowMapTypeMapper.write(HollowMapTypeMapper.java:76) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.core.write.objectmapper.HollowObjectTypeMapper$MappedField.copy(HollowObjectTypeMapper.java:470) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.core.write.objectmapper.HollowObjectTypeMapper.write(HollowObjectTypeMapper.java:176) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.core.write.objectmapper.HollowObjectMapper.add(HollowObjectMapper.java:70) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.WriteStateImpl.add(WriteStateImpl.java:41) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        at com.netflix.hollow.api.producer.HollowIncrementalCyclePopulator$2.run(HollowIncrementalCyclePopulator.java:136) ~[golftec-api-1.0-jar-with-dependencies.jar:na]
        ... 5 common frames omitted
    I got this error in the producer production
    anyone can guess any reason to help me on this matter
    Adrian Baker
    @adrian-skybaker

    I've got a hollow dataset that ideally I'd split between a "hot" set of current data (eg non-archived, non-expired, "active" records), and a larger set of "archived" data that's only of interest to some clients. As an analogy, think of a catalog of items in an online store, many of which are no longer offered for sale, but you still need to maintain records to resolve data about historical orders.

    I'm looking at some of the filtering/splitting options (https://hollow.how/tooling/#dataset-manipulation-tools), but I'm not sure I can see a way to make them work - in my case, it's about having a smaller set of records for the same types, rather than excluding specific types or fields.

    The more heavy handed option is to just create two entire hollow data sets, with two producers, which can share the same model. Which will work, but you lose the flexibility of letting clients decide how they filter. Before I go down this path, just wondering if anyone else has used the filtering/combining tools for this use case?

    2 replies
    Adrian Baker
    @adrian-skybaker

    I was extremely dismayed to discover this week that the producer validation listeners (eg DuplicateDataDetectionValidator) run after content has been written out to the persisted blob store.

    Although it did prevent the faulty version from being announced, the resulting cleanup has proved hard enough that we've given up and will just create a brand new blob store and get all clients to switch.

    Although this post-write validation behaviour is actually documented, it's extremely surprising and greatly reduces the usefulness of the validators.

    Drew Koszewnik
    @dkoszewnik
    @adrian-skybaker can you please help me understand why this resulted in a difficult cleanup? CB failures happen very often for us, and we find it useful to be able to retrieve the "bad" blobs from the blob store. Once the underlying issue is corrected, the next produced state will have a delta from the last announced state (artifacts for which are also still around in the blob store). We never actually do any sort of manual cleanup of the blob store after this event.
    2 replies
    Sahith Nallapareddy
    @snallapa
    hello I am wondering is there some sort of delay that occurs after applying a delta? i have a hollow dataset that use daily producer jobs. In the consumer, we use the unique key index to query the dataset. Everyday I can see the logs that the deltas are applied, however sometimes it seems that when the consumer queries the data for keys that should exist, it returns null. I setup a test consumer and queried the snapshot myself and found that the key does exist. After restarting our consumer we find that the consumer does find the data this time. Wondering if we waited longer would the consumer eventually be able to query the key? or could there be some weird bug in our implementation of some of the hollow classes
    2 replies
    Sahith Nallapareddy
    @snallapa
    similarly are there cases where a delta is applied but unique key index do not update? i am finding weird issues with longer running consumers. Keys do not seem to be found, but I have confirmed that deltas were applied and that the snapshot itself contains those keys
    3 replies
    graham_ren
    @graham_ren:matrix.org
    [m]

    Hello, I am using Hollow:7.1.1
    producer init:
    val producer = HollowProducer.withPublisher(publisher).withAnnouncer(announcer)
    .withNumStatesBetweenSnapshots(5)
    .buildIncremental()
    write data:
    s3Producer.runIncrementalCycle { writer ->
    writer.addOrModify(data)
    }

    I have encountered such error: Caused by: java.io.IOException: Attempting to apply a delta to a state from which it was not originated!

    Can someone help tell me how to fix this?

    Jeeukrishnan Kayshyap
    @Jeeukrishnan
    Hi.
    I am getting hollow files to generated at runtime , after these files get generated,I can use consumer because it is using .withgeneratedAPIClass() function. How can I get rid of this function or how can I generate entire Hollow files in compile time itself?
    Jeeukrishnan Kayshyap
    @Jeeukrishnan
    And why Netflix decided to generate custom apis after execution of producer code ? What can be their use case ? Is there any ways to generate these apis at compile time?
    Jeeukrishnan Kayshyap
    @Jeeukrishnan
    Hi , any sort of help anyone can provide?
    Alexandru-Gabriel Gherguț
    @AlexandruGhergut
    @Jeeukrishnan check out this plugin https://github.com/nebula-plugins/nebula-hollow-plugin. It adds a gradle task that you can call at build time to generate the API before compilation. If you don't want to use the plugin, you could probably write some custom Java code yourself that you can call at build time
    mailsanchu
    @mailsanchu
    @Jeeukrishnan Did you google this before posting it here?
    Jeeukrishnan Kayshyap
    @Jeeukrishnan
    @mailsanchu yes I did sir
    @AlexandruGhergut Hi, thanks for your response,But could you please help me with maven. I tried googling and tried using dependency that I found , but it seems APIs are still not getting generated, please give some guidance!
    mailsanchu
    @mailsanchu
    @Jeeukrishnan Need to improve your googling skills. here is an example with my skills https://github.com/IgorPerikov/hollow-maven-plugin-examples/blob/master/single-module-example/pom.xml
    learnerjava830
    @learnerjava830
    What is the best open source tool/software for performance verfiying to identify performance bugs in Java?
    learnerjava830
    @learnerjava830

    Text Over Image with Java Web Application

    https://www.baeldung.com/java-add-text-to-image
    https://www.geeksforgeeks.org/java-program-to-add-text-to-an-image-in-opencv/

    I want to display an image in the web application where user can add text on the image.

    Finally i need to save in DB, later user has to view the editable text and edit if required

    How to achieve this in java web application - UI? back-end? DB (json or image or co-ordinates) ?

    Does any opensource can be used in all the levels? Can someone suggest some comments/feedback

    learnerjava830
    @learnerjava830

    URL url = new URL(...); --> FAILS here when i try to download a https image - "javax.imageio.IIOException ... "Can't get input stream from URL!""

    Note:
    URL works from browser
    URL works in standalone program
    URL fails when used in java web application

    Question:

    1. Is any special treatment required to access https image from web app?
    2. How does it works in standalone program but not via web app though the certs are not installed in local machine?

    What is the correct/right approach and what is the underlying differences?

    Thanks

    eric
    @eric:matrix.h.etbus.ch
    [m]
    @learnerjava830: This is not an appropriate forum for questions like these, and I suspect you are some kind of linkspam bot. Please try this elsewhere.
    mailsanchu
    @mailsanchu
    Why the explorer is showing values as null in text mode.If I select json values displaying correctly
    image.png
    image.png
    mailsanchu
    @mailsanchu
    Anybody noticed this behaviour and is there a solution to this problem?
    Drew Koszewnik
    @dkoszewnik
    @mailsanchu I have seen that before! But it seems relatively rare and we haven't had an opportunity to dig into it. If you happen to have a record in a dataset that reliably reproduces this, would you be able to hook up a debugger and find the bug? We would be glad to accept a PR if you happen to have a good opportunity to diagnose the issue.
    mailsanchu
    @mailsanchu
    @dkoszewnik Here it is Netflix/hollow#573
    Drew Koszewnik
    @dkoszewnik
    @mailsanchu that's awesome. Thanks very much I'm releasing v7.1.5 right now with your fix.
    mailsanchu
    @mailsanchu
    I realized this may have fixed bug other bugs too new GenericHollowObject(hollowReadStateEngine, tye, ordinal).toString() was returning null string in some cases
    @dkoszewnik Thank you
    Ivan Zemlyanskiy
    @QIvan
    hello! I know it's not a big deal, but the official site with a quick start https://hollow.how/quick-start/ has a reference to an utterly out-of-date repo https://github.com/Netflix/hollow-reference-implementation
    the gradle wrapper can work only with java-8 and the hallow version is 2.6.8
    I could've fixed that, but there are already a lot of PRs in the project with version updates https://github.com/Netflix/hollow-reference-implementation/pulls
    could someone take a look at the PRs?
    for example this one looks promising Netflix/hollow-reference-implementation#16
    Ivan Zemlyanskiy
    @QIvan
    I know the current version is 7.1.7 but it's a reasonable start isn't it?
    thank you
    Ivan Zemlyanskiy
    @QIvan
    image.png
    @dkoszewnik @toolbear @kination (it says you are the 3 main contributors for the reference implementation project )
    Ivan Zemlyanskiy
    @QIvan
    is it dead?
    Sunjeet
    @Sunjeet
    Hi Ivan, I can look into this, likely next week because traveling. Thanks for the suggestion, I haven't worked with that repo yet, my initial thought is to bring it up to date to hollow 7 but maybe we could at least do the thing you suggested. Either way, more next week.
    Ivan Zemlyanskiy
    @QIvan
    cool! Thank you @Sunjeet yesterday I spend some time with it and I upgraded the dependencies even more.
    I'll make a PR in the near future, and will ask you to take into account my work as well
    if someone knows @IgorPerikov please let him know that I made an update for the maven plugin IgorPerikov/hollow-maven-plugin#17
    I added it to the reference implementation, but I guess we will need to release my upgrade in the plugin first
    Ivan Zemlyanskiy
    @QIvan
    @Sunjeet as far as you're here, could you tell me what needs to be done for this PR? Netflix/hollow#552
    just resolve the conflicts, right?
    Ivan Zemlyanskiy
    @QIvan
    @Sunjeet, I upgraded everything even further please review this PR Netflix/hollow-reference-implementation#26
    and I guess this PR should address all the open issues in the project =)
    Jörgen Rydenius
    @rydenius
    Hi. I opened Netflix/hollow#578 about a transitive security vulnerability that hollow-ui-tools brings. I submitted Netflix/hollow#579 as an attempt to fix it. Would appreciate if someone had time to review it.
    Sunjeet
    @Sunjeet
    @QIvan I left a minor comment in Netflix/hollow-reference-implementation#26