Coder Social home page Coder Social logo

Comments (13)

mbostock avatar mbostock commented on July 17, 2024 1

Sorry for the trouble, and thanks for trying! I’ll report back here if we learn anything on this problem.

from framework.

mbostock avatar mbostock commented on July 17, 2024

Are you seeing any errors or failed requests in either the preview server console, or in your browser’s console?

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

I'm not getting any errors or anything in the console. I did notice that for the dataset that isn't loading, after clearing the cache and restarting the server, I'm seeing it send more GET requests to the problematic file the first time and fewer the second time, when the issue starts to present. I switched the hash to ellipses to save space below.

Load 1:
HEAD /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...

Load 2 (fewer calls to problematic.parquet):
HEAD /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...
GET /_file/data/problematic.parquet?sha=...

I'll continue to look into this to see if I can create a fully reproducible example. I've tried subsetting columns and rows of the files with issue to see if I can identify a specific column type or value in the data that is causing issues, but nothing has jumped out so far.

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

I kept checking into this to find a minimally reproducible example. I've tested the process below on two computers just to be sure. I grabbed the 'weather.parquet' file from this page:

https://observablehq.com/@cmudig/duckdb-client

And I'm using this markdown file:

---
theme: dashboard
title: Example dashboard
toc: false
sql:
  w: ./data/weather.parquet
---

```sql id=tbl2 display
select * from w limit 1
```

If I start the server with npm run dev, the page loads and everything looks great.

image

Then if I adjust the query to:

select * from w limit 2

and save, the page live reloads and now I see two rows as expected.

image

However, then if I manually refresh the browser using ctrl+r, the table returns to "no results" and fails until I clear the cache.

image

In addition, any query I run against the 'weather' dataset now fails with "no results" until I clear the cache - even restarting the server doesn't help. So it seems like my manual refresh might be the issue.

I'm coming to framework having used Observable in the Quarto implementation, so I'm probably just refreshing the page out of habit. Is this a bug, or should I just 100% avoid using anything but the live preview?

from framework.

mbostock avatar mbostock commented on July 17, 2024

I’m afraid I’m not able to reproduce.

Screen.Recording.2024-06-17.at.6.45.44.PM.mov

There shouldn’t be any issue with manually reloading the page. The fact that clearing the cache fixes the issue suggests that this may be a browser issue. If you’re willing, you could try updating or re-installing your browser, resetting your browser settings, uninstalling any extensions, or trying a different browser.

Since I can’t reproduce and can’t investigate further, I’m going to close this issue. But if you have any other hints, I’d be happy to take another look.

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

Thanks for your help and for taking a look. Here's a similar setup on my screen with Chrome, Chrome in Incognito Mode, and Edge so you can see it live.

2024-06-18.02-58-06.mp4

from framework.

mbostock avatar mbostock commented on July 17, 2024

Browser extensions are disabled in incognito tabs, so the fact that it works in the incognito tab suggests that a browser extension may be at fault. Did you try disabling browser extensions as I mentioned?

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

I just went through and double checked and reset both Chrome and Edge to their default settings and removed any extensions and unfortunately the problem persists.

I tried Firefox and oddly it does not seem to have the same problem.

Thanks again for checking into it. If I use arrow files instead the issue goes away, so I can continue to use framework.

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

I'm just making a quick update here to note that the issue is likely related to duckdb-wasm:

duckdb/duckdb-wasm#1658

Users noted there as well that the issue could not be reproduced on a Mac.

from framework.

massyn avatar massyn commented on July 17, 2024

@brichards920 - I am experiencing the same issue. I'd love to explore this a bit with you if I may.

Some documentation seem to suggest this is a Chrome on Windows issue. I did notice that when I run Observable in Firefox, or I start Chrome in Incognito mode, the problem goes away. What browser / OS are you using?

How are you generating the Parquet file? I am using Google BigQuery as my primary data source, with a Python data loader that uses Pandas to query BigQuery, and saving the Parquet file with df.to_parquet()

from framework.

brichards920 avatar brichards920 commented on July 17, 2024

@massyn my situation sounds like it is the same - I'm on Windows and I can see the issue in Chrome and Edge. I confirmed this on two separate computers before posting the issue to try to rule out odd settings on one of them.

Using incognito mode in Chrome or using Firefox fixes the issue. That would be OK for me during development, but I share my outputs with a fair number of viewers who are all on a Windows/Chrome setup and it wouldn't be reasonable to ask them to use those workarounds.

I originally encountered the issue generating parquet files in R using arrow::write_parquet. When I was putting together this issue I was concerned that my workflow for generating the parquet files might be the problem, but I was able to reproduce it with 'weather.parquet' from here as well: https://observablehq.com/@cmudig/duckdb-client

from framework.

massyn avatar massyn commented on July 17, 2024

Hi @mbostock - I'd like to ask that you reopen this issue. Both @brichards920 and myself are experiencing this issue, and it would help to have a place where we can work together to isolate this problem.

I have established a test project using the weather.parquet file from your website, and I was able to produce the same behaviour as reported by @brichards920 .

The project can be viewed here

When it shows up

  • When using Google Chrome on Windows

Workarounds

  • Use Firefox (or any other browser that's not Chromium based)
  • Run Google Chrome in Incognito mode.
  • Use a different data file (json works, even thought the file is much bigger).

Some observations

  • Looking at the browser dev tools, I notice that on first load, the weather.5d8516c3.parquet file is read from the site, and it works. On refresh, it reads the file from disk cache, and then it fails.
  • On incognito mode, it also changes to "disk cache" but somehow keeps working.
  • The behaviour experienced is similar to that mentioned here duckdb/duckdb-wasm#1658.

It is likely that this is a DuckDB issue.

from framework.

mbostock avatar mbostock commented on July 17, 2024

I can reopen the issue but it’s unlikely we’ll be able to fix it if it’s an issue in DuckDB-Wasm. Probably better to upvote and follow duckdb/duckdb-wasm#1658.

from framework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.