-
gitomat
[illumos-gate] 18134 Panic in tem module due to stale queue_t -- Jason King <jason.brian.king⊙gc>
-
jbk
this is a bit in the weeds, but I'm trying to locate a value (start of a struct) on the stack of a crashed command... would the frame address seen with ::stack be set before or after the initial locals are setup?
-
jbk
i.e. given the frame address of the function, should i be looking at lower or higher addresses for the start of the struct
-
jbk
or maybe to put it a bit differently..
pastebin.com/8MXaCaBP -- would `8045918,2060::dump` be the right incantation to look at the stack usage of `scf_iter_next_value` ?
-
jbk
I have some clues on the contents, so I _think_ i've found it, but the values are puzzling (making me wonder if i've missed something)
-
tsoome_
um, frame address is highest and stack pointer is lowest normally, I suppose it appears the same in trace...
-
jbk
hrm.. ok.. I don't know my 64-bit constants well enough :)
-
jbk
i think something took (uint64_t)-1, printed it (as 1844.....) then converted it to a double and printed the resulting string
-
Dixie_F
Current illumos-gate on Intel 7 Series/C210 xHC reports super-speed on xhci, but throughput is only ~108MB/s raw. Is this expected for illumos scsa2usb/xhci/BOT/UASP behavior, or are there tunables/known-good controllers/bridges that might improve this (3x as fast on old macbook)
-
extrowerk
Dixie_F: I can report many headaches regarding using xhci with Illumos
-
Dixie_F
Just with pass-thru or in general?
-
extrowerk
in general. the worst combo for me is zfs pool on xhci attached usb-nvmi enclosure.
-
jbk
hrm... i suppose it's probably ok, but digging into this deeper and seeing the lack of parameter binding in libscf saddens me
-
jbk
also makes me twitch a bit
-
richlowe
if you're meaning that re: sql, I'm not sure it existed when they did it
-
richlowe
sqlite2 is kinda rough
-
jbk
could be
-
jbk
we just convertd smf to sqlite3 and i saw this after the export/import on reboot on a system
-
jbk
but it made me start looking more at the svc.configd code
-
jbk
since the schema is using INTEGERS
-
jbk
I guess I probably need to see if I can find the row in the v2 db
-
richlowe
oracle and sommerfeld already discovered that data does not survive the v2/v3 switch without manual fixups
-
richlowe
sommerfeld: I think maybe you had even some code that might start to fix them?
-
sommerfeld
yeah. it's a long-backburnered project, though.
-
sommerfeld
jbk: main issue is that sqlite stores signed integers, while SMF stored unsigned integers...
-
jbk
Jerry did some work internally on it... i pointed him and the stuff you had seen as there was a need to get off of sqlite2
-
jbk
in this case, it looks like somewhere -1 is getting turned into ULLONG_MAX and then into a double and then into a string
-
jbk
causing svccfg import to crash
-
jbk
(or trip an assert)
-
sommerfeld
yeah. I fixed it in sqlite2 shell on the way out of sqlite2
-
jbk
but tbh, it's too close to end of day friday to dig too deeply today :)
-
jbk
I lost my long weekend last weekend due to a customer issue, so it can wait until monday :)
-
jbk
i'm trying to get back to the i40e upstream now that the other things that got in front of it are resolved
-
jbk
(I still want to slap the intel engineers that designed the DMA engine for their NICs with a dead fish or two)
-
myrkraverk
jbk, you can always hire me to make a custom SQLite version, or an extension [not sure if the extension mechanism allows to create new types] for you; it shouldn't cost you too much.
-
sommerfeld
-
fenix
→ CODE REVIEW 4254: sqlite: hack up sqlite2 shell to dump tables in ways more compatible with sqlite3 (NEW)
-
myrkraverk
Better would be to just do it, then apply for a job at the SQLite company, forgot the name of it. Maybe they'll want to pay for it retroactively?
-
sommerfeld
I think the issue is that sqlite2 is dumping values from INT64_MIN to UINT64_MAX without quotes; sqlite3 then converts the values between INT64_MAX and UINT64_MAX to float.
-
sommerfeld
(sqlite2 was storing them all as strings; sqlite3 converts unquoted numbers to either binary integers or floating point)
-
jbk
ahh.. i'm guessing if i look at the exported v2 db, i'll probably see that value in there...
-
jbk
based on that...
-
myrkraverk
IIRC, you can explicitly declare columns as integers and floating point, but you'll have to do the right incantation when you create the .db file to make that work.
-
jbk
the existing schema in svc.configd does do that (all the columns are INTEGERs)
-
jbk
but it sounds like it's an issue with doing the export and then importing
-
myrkraverk
But do you do the right incantation to /force it/ when you create the .db file in the first place?
-
jbk
since it sounds like v3 kinda ignores the column types
-
jbk
and just associates a type with each cell
-
myrkraverk
I'm off the clock, you need to pay me to look it up in the manual for you.
-
jbk
so the same column can have all sort of fun types in its value if you enjoy pain
-
sommerfeld
jbk: sqlite3 is squishy with types unless you enable STRICT - see
sqlite.org/stricttables.html
-
richlowe
yeah, I think I had to use 'strict' for the prototype of sqlite3+idmap, if I wanted to stay sane
-
myrkraverk
And I thought there was an option when the .db file was created to force it; but I may have misremembered the manual.
-
myrkraverk
-
richlowe
I think some sqlite options like that are sticky
-
richlowe
maybe only foreign key obeyance?
-
sommerfeld
STRICT is part of the schema, so it's sticky on a per-table basis. WAL is sticky. Foreign keys enforcement is annoyingly not sticky - you need to reenable via pragma on every session.
-
hadfl
everybody likes databases :)
-
sommerfeld
sqlite3 is a great database with a bunch of compat baggage.
-
jbk
hadfl: if only more people used them properly :)
-
jbk
and RTFM
-
myrkraverk
Of course, nobody builds Sqlite3 commands or libraries on their own, and enables STRICT by default; I'm pretty sure I did that once or twice on Windows, but forgot how.
-
jbk
early on in my career, I dealt with a system that used a database (informix, but any other sql db would have been the same) where they just created a table with like 8 VARCHAR(128) columns
-
jbk
and to store data would basically concatenate values into a string and then store it in one of those columns
-
myrkraverk
I'm not old enough to have used Informix; I did install DB2 on my IBM Thinkpad once, but couldn't use the laptop afterwards. IIRC I had to buy a new HDD to fix the problem.
-
myrkraverk
jbk, are you sure you're not talking about DOS Dbase III or something?
-
jbk
I'm very sure
-
jbk
(if you really want to know, it was a Siemens FFP (fast feature platform))
-
myrkraverk
Then I'm pretty sure Dbase III copied their protocols C:
-
jbk
so like columnA would have 'foo|1234|bar|9999|true' as a value
-
jbk
instead of having separate columns for each item
-
myrkraverk
I've never been a fast feature platform, but I've spent several weeks doing CREATE INDEX to make a website go faster. We don't talk about which website.
-
jbk
well that's the thing, you really can't index that :)
-
jbk
there was other things, like when doing bulk inserts, committing after each row IIRC
-
myrkraverk
No, nobody can just index by the slow query log automagically.
-
jbk
but it was all behind a propritary API where the only language supported was perl5
-
myrkraverk
jbk, Informix didn't have BEGIN ; and COMMIT ; ?
-
jbk
oh it did
-
andyf
jbk did you do any 4GL? My first real job involved Informix Online and 4GL..
-
jbk
jsut teh software using it was using the database quite poorly
-
myrkraverk
I once implemented shift-jis to utf-8 in perl5; the code was complete bullshit, but I had to do it the way I did, because code pages in perl5 are complete bullshit anyway.
-
jbk
so loading like 10,000 rows took _hours_
-
jbk
when it should have taken maybe a few minutes at most
-
myrkraverk
Pretty sure it could have taken milliseconds with a modern SQL server, and the proper PostgreSQL setup; I know, I did it about ten years ago.
-
jbk
but not to single them out too much, such SQL anti-patterns are unfortunately not as rare as they should be
-
jbk
this was like in 98-99 running on a sparc 20
-
myrkraverk
Nobody reads the slow query logs, and programmers are taught not to CREATE INDEX; that's because they believe it'll make the system slow. Too many indexes makes the system slow, of course.
-
myrkraverk
jbk, and you didn't have the budget for 10,000 sparc 20s? Usually when a system is slow, it's always a budget problem.
-
jbk
it was a self contained system with the software from siemens
-
myrkraverk
Then always blame Siemens. Don't blame yourself for their budget problems in the late 80s.
-
jbk
andyf: naah.. though I know some people that have...
-
jbk
but the point is SQL databases have had immense amount of effort put into making them pretty good products, and just treating it like some dumb datastore is going to do you and your products a great disservice
-
myrkraverk
jbk, a Japanese programmer who does -- or did -- everything in perl5? I have an ex-coworker who may fit the bill; we went out to eat sushi yesterday.
-
jbk
(but it's sadly a lesson people keep learning the hard way)
-
myrkraverk
Usually they don't learn it at all; the website gets so slow the company goes bankrupt and the programmers move on to a different website, and repeat the same configuration errors.