Closed Bug 764269 Opened 14 years ago Closed 14 years ago

Application updates fail to apply under Linux

Categories

(Toolkit :: Application Update, defect)

x86
Linux
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla16
Tracking Status
firefox15 + fixed

People

(Reporter: landis, Assigned: ehsan.akhgari)

References

Details

(Keywords: regression)

Attachments

(5 files)

User Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120611 Firefox/15.0a2 Build ID: 20120611042006 Steps to reproduce: ff notifies me 'update available' click update. Actual results: update downloads and 'applies' a 1.2'ish mb update then immediately starts a 22.6 mb update, but after several times, killing (Linux) firefox process, Second part of (22.6mb) Never gets past a meg and my 'download is around 2 to 5.8 kb/s.. is it your server or f*ing comcast and their 'caching servers'? Expected results: download the 22.6mb in a minute and ask me to 'restart'
same screen capture, attchment on intl post, mime text.
Confirming this. This has been happening to me since the fix for bug 307181 landed.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Component: Untriaged → Application Update
Product: Firefox → Toolkit
QA Contact: untriaged → application.update
Version: 15 Branch → Trunk
Although I confirmed this bug, it really needs to be split into 2 bugs. The reason being that it really describes 2 separate system, that to people running on Aurora would have started at the same time, for me running mozilla-central nightlies these did not both start on the same day. The 2 issues are: 1. Since the landing of bug 307181, application updates for Linux no longer apply correctly. 2. The complete Linux MAR files take a long time to download via the application update process. I am going to redo the summary for this bug to cover issue 1 only and submit a new bug for issue number 2.
Blocks: bgupdates
Severity: normal → major
Keywords: regression
Summary: update downloads applies 1.2 mb the hangs on 22.6mb update → Application updates fail to apply under Linux
I filed Bug 764377 on issue number 2.
Landis/Bill, do you guys have the log files available for the failed updates? You can find them in /path/to/firefox/updates/last-update.log and /path/to/firefox/updates/update-backup.log.
(In reply to Ehsan Akhgari [:ehsan] from comment #6) > Landis/Bill, do you guys have the log files available for the failed > updates? You can find them in /path/to/firefox/updates/last-update.log and > /path/to/firefox/updates/update-backup.log. OK from the updates log it seems the issue is that it is getting errors because of symlinks to plugins in the applications plugins directory. I would think it should be ignoring this entire directory, but that is just me. I use the applications plugins directory because I am running 64-bit Linux but both 32 and 64 bit Firefox and need a way to load 64-bit plugins for 64-bit firefox and 32-bit for 32-bit etc. However the error I am getting also makes no sense because the log shows: Performing a background update SOURCE DIRECTORY /home/wag/nightly/updates/0 DESTINATION DIRECTORY /home/wag/nightly/updated ensure_copy: failed to open the file for reading: /home/wag/nightly/plugins/nphe lix.xpt, err: 1 failed: 6 calling QuitProgressUI However that file is clearly readable: od -c /home/wag/nightly/plugins/nphelix.xpt 0000000 X P C O M \n T y p e L i b \r \n 032 0000020 001 002 \0 002 \0 \0 023 336 \0 \0 \0 " \0 \0 \0 Y 0000040 200 \0 \0 \0 \0 \0 \0 \0 \0 300 \0 \0 \0 \0 \0 \0 0000060 F \0 \0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 372 ! w 0000100 n 215 i D b 214 I 272 366 303 340 256 \0 \0 \0 0000120 \r \0 \0 \0 \0 \0 \0 \0 031 n s I S u p p 0000140 o r t s \0 n s I H X P l a y e r 0000160 \0 \0 001 \0 265 \0 \0 \0 \a 230 002 200 220 ` \n \0 0000200 006 \0 \0 \0 \a 242 002 200 220 ` \n \0 006 \0 \0 \0 0000220 \a 263 003 200 220 200 \n ` \n \0 006 \0 \0 \0 \a 302 0000240 002 200 220 ` \n \0 006 \0 \0 \0 \a 315 002 200 \n ` 0000260 \n \0 006 \0 \0 \0 \a 332 002 200 \n ` \n \0 006 \0 0000300 \0 \0 \a 346 001 ` \n \0 006 \0 \0 \0 \a 362 001 ` 0000320 \n \0 006 \0 \0 \0 \a 372 001 ` \n \0 006 \0 \0 \0 0000340 \b 001 001 ` \n \0 006 \0 \0 \0 \b \b 001 ` 002 \0 0000360 006 \0 \0 \0 \b 024 002 200 002 ` \n \0 006 \0 \0 \0 0000400 \b 001 ` 002 \0 006 \0 \0 \0 \b * 001 ` 002 \0 0000420 006 \0 \0 \0 \b 7 001 ` 002 \0 006 \0 \0 \0 \b F 0000440 001 ` 220 \0 006 \0 \0 \0 \b O 001 ` 220 \0 006 \0 0000460 \0 \0 \b Y 001 ` 220 \0 006 \0 \0 \0 \b f 001 ` 0000500 \n \0 006 \0 \0 \0 \b s 001 ` \n \0 006 \0 \0 \0 0000520 \b | 002 200 \n ` \n \0 006 \0 \0 \0 \b 206 001 ` 0000540 \n \0 006 \0 \0 \0 \b 221 001 ` \n \0 006 \0 \0 \0 0000560 \b 234 001 ` \n \0 006 \0 \0 \0 \b 250 001 ` \n \0 0000600 006 \0 \0 \0 \b 264 001 ` \n \0 006 \0 \0 \0 \b 301 0000620 001 ` \n \0 006 \0 \0 \0 \b 311 001 ` \n \0 006 \0 0000640 \0 \0 \b 326 001 ` \n \0 006 \0 \0 \0 \b 343 001 ` 0000660 \n \0 006 \0 \0 \0 \b 357 001 ` \n \0 006 \0 \0 \0 0000700 \b 373 002 200 002 ` \n \0 006 \0 \0 \0 \t 005 002 200 0000720 \n ` \n \0 006 \0 \0 \0 \t \r 002 200 \n ` \n \0 0000740 006 \0 \0 \0 \t " 001 ` \n \0 006 \0 \0 \0 \t 7 0000760 002 200 \n ` \n \0 006 \0 \0 \0 \t H 002 200 \n ` 0001000 \n \0 006 \0 \0 \0 \t \ 001 ` \n \0 006 \0 \0 \0 0001020 \t p 001 ` 002 \0 006 \0 \0 \0 \t 200 001 ` 002 \0 0001040 006 \0 \0 \0 \t 223 001 ` 002 \0 006 \0 \0 \0 \t 250 0001060 001 ` 002 \0 006 \0 \0 \0 \t 272 001 ` 002 \0 006 \0 0001100 \0 \0 \t 311 001 ` 002 \0 006 \0 \0 \0 \t 335 001 ` 0001120 002 \0 006 \0 \0 \0 \t 361 001 ` \n \0 006 \0 \0 \0 0001140 \t 372 001 ` \n \0 006 \0 \0 \0 \n \n 002 200 \n ` 0001160 \n \0 006 \0 \0 \0 \n 035 001 ` \n \0 006 \0 \0 \0 0001200 \n 0 001 ` \n \0 006 \0 \0 \0 \n D 001 ` \n \0 0001220 006 \0 \0 \0 \n K 001 ` \n \0 006 \0 \0 \0 \n [ 0001240 001 ` \n \0 006 \0 \0 \0 \n i 002 200 220 ` \n \0 0001260 006 \0 \0 \0 \n t 002 200 \n ` \n \0 006 \0 \0 \0 0001300 \n 203 001 ` \n \0 006 \0 \0 \0 \n 222 001 ` \n \0 0001320 006 \0 \0 \0 \n 236 002 200 220 ` \n \0 006 \0 \0 \0 0001340 \n 252 001 ` 220 \0 006 \0 \0 \0 \n 271 001 ` \n \0 0001360 006 \0 \0 \0 \n 305 002 200 \n ` \n \0 006 \0 \0 \0 0001400 \n 321 002 200 \n ` \n \0 006 \0 \0 \0 \n 334 001 ` 0001420 \n \0 006 \0 \0 \0 \n 347 001 ` 220 \0 006 \0 \0 \0 0001440 \n 361 001 ` \n \0 006 \0 \0 \0 \n 371 001 ` \n \0 0001460 006 \0 \0 \0 \v 002 001 ` \n \0 006 \0 \0 \0 \v 017 0001500 001 ` 220 \0 006 \0 \0 \0 \v " 002 200 220 ` \n \0 0001520 006 \0 \0 \0 \v 5 001 ` \n \0 006 \0 \0 \0 \v ? 0001540 001 ` 002 \0 006 \0 \0 \0 \v M 001 ` 002 \0 006 \0 0001560 \0 \0 \v Z 001 ` 220 \0 006 \0 \0 \0 \v e 001 ` 0001600 \n \0 006 \0 \0 \0 \v y 001 ` \n \0 006 \0 \0 \0 0001620 \v 215 001 ` \n \0 006 \0 \0 \0 \v 243 001 ` 220 \0 0001640 006 \0 \0 \0 \v 257 001 ` \n \0 006 \0 \0 \0 \v 277 0001660 001 ` \n \0 006 \0 \0 \0 \v 315 001 ` \n \0 006 \0 0001700 \0 \0 \v 333 001 ` \n \0 006 \0 \0 \0 \v 355 001 ` 0001720 \n \0 006 \0 \0 \0 \v 365 001 ` \n \0 006 \0 \0 \0 0001740 \f 001 001 ` 002 \0 006 \0 \0 \0 \f \f 001 ` \n \0 0001760 006 \0 \0 \0 \f 031 001 ` \n \0 006 \0 \0 \0 \f , 0002000 001 ` \n \0 006 \0 \0 \0 \f > 001 ` 002 \0 006 \0 0002020 \0 \0 \f H 002 200 \n ` \n \0 006 \0 \0 \0 \f R 0002040 002 200 \n ` \n \0 006 \0 \0 \0 \f d 002 200 \n ` 0002060 \n \0 006 \0 \0 \0 \f z 002 200 \n ` \n \0 006 \0 0002100 \0 \0 \f 216 002 200 \n ` \n \0 006 \0 \0 \0 \f 242 0002120 001 ` \n \0 006 \0 \0 \0 \f 260 001 ` \n \0 006 \0 0002140 \0 \0 \f 276 001 ` \n \0 006 \0 \0 \0 \f 316 002 200 0002160 \n ` \n \0 006 \0 \0 \0 \f 330 001 ` \n \0 006 \0 0002200 \0 \0 \f 342 002 200 002 ` \n \0 006 \0 \0 \0 \f 355 0002220 002 200 \n ` \n \0 006 \0 \0 \0 \f 372 002 200 \n ` 0002240 \n \0 006 \0 \0 \0 \r \f 002 200 \n ` \n \0 006 \0 0002260 \0 \0 \r " 002 200 \n ` \n \0 006 \0 \0 \0 \r 5 0002300 002 200 \n ` \n \0 006 \0 \0 \0 \r C 001 ` \n \0 0002320 006 \0 \0 \0 \r Y 001 ` \n \0 006 \0 \0 \0 \r l 0002340 001 ` \n \0 006 \0 \0 \0 \r z 001 ` 002 \0 006 \0 0002360 \0 \0 \r 210 001 ` 002 \0 006 \0 \0 \0 \r 230 002 200 0002400 002 ` 220 \0 006 \0 \0 \0 \r 246 002 200 002 ` 220 \0 0002420 006 \0 \0 \0 \r 265 002 200 002 ` 220 \0 006 \0 \0 \0 0002440 \r 307 002 200 002 ` 220 \0 006 \0 \0 \0 \r 330 002 200 0002460 \n ` \n \0 006 \0 \0 \0 \r 343 001 ` \n \0 006 \0 0002500 \0 \0 \r 356 001 ` 002 \0 006 \0 \0 \0 016 006 001 ` 0002520 002 \0 006 \0 \0 \0 016 001 ` 002 \0 006 \0 \0 \0 0002540 016 7 001 ` 002 \0 006 \0 \0 \0 016 M 001 ` 220 \0 0002560 006 \0 \0 \0 016 g 001 ` 002 \0 006 \0 \0 \0 016 x 0002600 001 ` 002 \0 006 \0 \0 \0 016 206 002 200 002 ` 220 \0 0002620 006 \0 \0 \0 016 231 002 200 002 ` \n \0 006 \0 \0 \0 0002640 016 247 001 ` 002 \0 006 \0 \0 \0 016 265 001 ` \n \0 0002660 006 \0 \0 \0 016 304 002 200 \n ` \n \0 006 \0 \0 \0 0002700 016 323 003 200 002 200 \n ` \n \0 006 \0 \0 \0 016 346 0002720 002 200 002 ` \n \0 006 \0 \0 \0 016 371 002 200 \n ` 0002740 \n \0 006 \0 \0 \0 017 \b 001 ` \n \0 006 \0 \0 \0 0002760 017 027 001 ` 220 \0 006 \0 \0 \0 017 % 001 ` 220 \0 0003000 006 \0 \0 \0 017 = 001 ` 220 \0 006 \0 \0 \0 017 T 0003020 001 ` 002 \0 006 \0 \0 \0 017 i 001 ` 002 \0 006 \0 0003040 \0 \0 017 } 001 ` 220 \0 006 \0 \0 \0 017 227 001 ` 0003060 002 \0 006 \0 \0 \0 017 254 001 ` 002 \0 006 \0 \0 \0 0003100 017 313 001 ` 002 \0 006 \0 \0 \0 017 351 001 ` 002 \0 0003120 006 \0 \0 \0 020 003 001 ` 002 \0 006 \0 \0 \0 020 035 0003140 001 ` 002 \0 006 \0 \0 \0 020 = 001 ` 002 \0 006 \0 0003160 \0 \0 020 \ 001 ` 002 \0 006 \0 \0 \0 020 w 001 ` 0003200 002 \0 006 \0 \0 \0 020 222 001 ` 002 \0 006 \0 \0 \0 0003220 020 257 001 ` 002 \0 006 \0 \0 \0 020 313 001 ` 002 \0 0003240 006 \0 \0 \0 020 343 001 ` 002 \0 006 \0 \0 \0 020 373 0003260 001 ` 002 \0 006 \0 \0 \0 021 031 001 ` 002 \0 006 \0 0003300 \0 \0 021 6 001 ` 002 \0 006 \0 \0 \0 021 O 001 ` 0003320 002 \0 006 \0 \0 \0 021 h 001 ` 002 \0 006 \0 \0 \0 0003340 021 206 001 ` 002 \0 006 \0 \0 \0 021 243 001 ` 002 \0 0003360 006 \0 \0 \0 021 274 001 ` 002 \0 006 \0 \0 \0 021 325 0003400 001 ` 002 \0 006 \0 \0 \0 021 364 001 ` 002 \0 006 \0 0003420 \0 \0 022 022 001 ` 002 \0 006 \0 \0 \0 022 , 001 ` 0003440 002 \0 006 \0 \0 \0 022 F 001 ` 002 \0 006 \0 \0 \0 0003460 022 ` 001 ` 002 \0 006 \0 \0 \0 022 y 001 ` 002 \0 0003500 006 \0 \0 \0 022 216 001 ` 002 \0 006 \0 \0 \0 022 243 0003520 001 ` 002 \0 006 \0 \0 \0 022 273 001 ` 002 \0 006 \0 0003540 \0 \0 022 315 001 ` 002 \0 006 \0 \0 \0 022 343 001 ` 0003560 002 \0 006 \0 \0 \0 022 363 001 ` 002 \0 006 \0 \0 \0 0003600 023 \f 001 ` 002 \0 006 \0 \0 \0 023 037 002 200 220 ` 0003620 \n \0 006 \0 \0 \0 023 ) 002 200 220 ` \n \0 006 \0 0003640 \0 \0 023 2 002 200 220 ` \n \0 006 \0 \0 \0 023 ? 0003660 001 ` \n \0 006 \0 \0 \0 023 G 002 200 \n ` \n \0 0003700 006 \0 \0 \0 023 O 001 ` \n \0 006 \0 \0 \0 023 Y 0003720 001 ` \n \0 006 \0 \0 \0 023 j 002 200 \n ` \n \0 0003740 006 \0 \0 \0 023 { 002 200 220 ` 220 \0 006 \0 \0 200 0003760 S e t S o u r c e \0 S e t C o n 0004000 t r o l S t r i n g \0 S e t C o 0004020 n s o l e N a m e \0 S e t C o n 0004040 s o l e \0 S e t A u t o S t a r 0004060 t \0 S e t N o L a b e l s \0 D o 0004100 P l a y P a u s e \0 D o P a u s 0004120 e \0 D o P l a y \0 D o S t o p \0 0004140 G e t P o s i t i o n \0 S e t P 0004160 o s i t i o n \0 G e t L e n g t 0004200 h \0 G e t P l a y S t a t e \0 G 0004220 e t S t e r e o S t a t e \0 G e 0004240 t T i t l e \0 G e t A u t h o r 0004260 \0 G e t C o p y r i g h t \0 G e 0004300 t L i v e S t a t e \0 I s Z o o 0004320 m e d \0 S e t Z o o m e d \0 D o 0004340 N e x t I t e m \0 D o P r e v I 0004360 t e m \0 D o N e x t E n t r y \0 0004400 D o P r e v E n t r y \0 C a n P 0004420 l a y P a u s e \0 C a n S t o p 0004440 \0 H a s N e x t E n t r y \0 H a 0004460 s P r e v E n t r y \0 H a s N e 0004500 x t I t e m \0 H a s P r e v I t 0004520 e m \0 S e t V o l u m e \0 S e t 0004540 M u t e \0 S e t E n a b l e C o 0004560 n t e x t M e n u \0 G e t E n a 0004600 b l e C o n t e x t M e n u \0 E 0004620 n a b l e M e s s a g e B o x \0 0004640 S e t E n a b l e M e s s a g e 0004660 B o x \0 G e t E n a b l e M e s 0004700 s a g e B o x \0 G e t P a c k e 0004720 t s T o t a l \0 G e t P a c k e 0004740 t s R e c e i v e d \0 G e t P a 0004760 c k e t s O u t O f O r d e r \0 0005000 G e t P a c k e t s M i s s i n 0005020 g \0 G e t P a c k e t s L a t e 0005040 \0 G e t B a n d w i d t h A v e 0005060 r a g e \0 G e t B a n d w i d t 0005100 h C u r r e n t \0 A b o u t B o 0005120 x \0 E d i t P r e f e r e n c e 0005140 s \0 S e t S h o w P r e f e r e 0005160 n c e s \0 H i d e S h o w S t a 0005200 t i s t i c s \0 I s S t a t i s 0005220 t i c s V i s i b l e \0 I s D o 0005240 n e \0 S t a t u s S c a n S t a 0005260 r t \0 S t a t u s S c a n E n d 0005300 \0 S t a t u s S c a n \0 S e t A 0005320 u t o G o T o U R L \0 G e t A u 0005340 t o G o T o U R L \0 P r o c e s 0005360 s I d l e \0 S e t C o n t r o l 0005400 s \0 G e t V e r s i o n I n f o 0005420 \0 G e t P r e F e t c h \0 S e t 0005440 P r e F e t c h \0 S e t S h u f 0005460 f l e \0 G e t S h u f f l e \0 G 0005500 e t S o u r c e \0 C a n P l a y 0005520 \0 C a n P a u s e \0 G e t A u t 0005540 o S t a r t \0 G e t B a c k g r 0005560 o u n d C o l o r \0 S e t B a c 0005600 k g r o u n d C o l o r \0 G e t 0005620 C e n t e r \0 G e t C l i p H e 0005640 i g h t \0 G e t C l i p W i d t 0005660 h \0 G e t C o n s o l e \0 G e t 0005700 E n a b l e D o u b l e S i z e 0005720 \0 G e t E n a b l e F u l l S c 0005740 r e e n \0 G e t E n a b l e O r 0005760 i g i n a l S i z e \0 G e t C o 0006000 n t r o l s \0 G e t O r i g i n 0006020 a l S i z e \0 G e t F u l l S c 0006040 r e e n \0 G e t D o u b l e S i 0006060 z e \0 G e t M a i n t a i n A s 0006100 p e c t \0 G e t M u t e \0 G e t 0006120 N o L a b e l s \0 G e t N u m L 0006140 o o p \0 G e t S h o w A b o u t 0006160 \0 G e t S h o w P r e f e r e n 0006200 c e s \0 G e t S h o w S t a t i 0006220 s t i c s \0 G e t V o l u m e \0 0006240 S e t C e n t e r \0 S e t M a i 0006260 n t a i n A s p e c t \0 S e t E 0006300 n a b l e O r i g i n a l S i z 0006320 e \0 S e t E n a b l e D o u b l 0006340 e S i z e \0 S e t E n a b l e F 0006360 u l l S c r e e n \0 S e t D o u 0006400 b l e S i z e \0 S e t F u l l S 0006420 c r e e n \0 S e t O r i g i n a 0006440 l S i z e \0 S e t N o L o g o \0 0006460 G e t N o L o g o \0 S e t N u m 0006500 L o o p \0 S e t S h o w A b o u 0006520 t \0 S e t S h o w S t a t i s t 0006540 i c s \0 S e t W a n t K e y b o 0006560 a r d E v e n t s \0 S e t W a n 0006600 t M o u s e E v e n t s \0 S e t 0006620 W a n t E r r o r s \0 G e t W a 0006640 n t K e y b o a r d E v e n t s 0006660 \0 G e t W a n t M o u s e E v e 0006700 n t s \0 G e t W a n t E r r o r 0006720 s \0 G e t N u m E n t r i e s \0 0006740 G e t C u r r e n t E n t r y \0 0006760 G e t E n t r y T i t l e \0 G e 0007000 t E n t r y A u t h o r \0 G e t 0007020 E n t r y C o p y r i g h t \0 G 0007040 e t E n t r y A b s t r a c t \0 0007060 S e t C a n S e e k \0 G e t C a 0007100 n S e e k \0 G e t B u f f e r i 0007120 n g T i m e E l a p s e d \0 G e 0007140 t B u f f e r i n g T i m e R e 0007160 m a i n i n g \0 G e t C o n n e 0007200 c t i o n B a n d w i d t h \0 G 0007220 e t P r e f e r e d L a n g u a 0007240 g e I D \0 G e t P r e f e r e d 0007260 L a n g u a g e S t r i n g \0 G 0007300 e t U s e r C o u n t r y I D \0 0007320 G e t N u m S o u r c e s \0 G e 0007340 t S o u r c e T r a n s p o r t 0007360 \0 S e t V i d e o S t a t e \0 G 0007400 e t V i d e o S t a t e \0 G e t 0007420 C o n t e x t M e n u \0 S e t C 0007440 o n t e x t M e n u \0 S e t C o 0007460 n t e x t M e n u I t e m \0 G e 0007500 t C o n t e x t M e n u I t e m 0007520 \0 S e t I m a g e S t a t u s \0 0007540 G e t I m a g e S t a t u s \0 G 0007560 e t L a s t S t a t u s \0 G e t 0007600 L a s t E r r o r M o r e I n f 0007620 o U R L \0 G e t L a s t E r r o 0007640 r U s e r S t r i n g \0 G e t L 0007660 a s t E r r o r U s e r C o d e 0007700 \0 G e t L a s t E r r o r R M A 0007720 C o d e \0 G e t L a s t E r r o 0007740 r R M A C o d e S t r i n g \0 G 0007760 e t L a s t E r r o r S e v e r 0010000 i t y \0 G e t L a s t L e f t B 0010020 u t t o n D o w n T i m e S t a 0010040 m p \0 G e t L a s t L e f t B u 0010060 t t o n D o w n K e y F l a g s 0010100 \0 G e t L a s t L e f t B u t t 0010120 o n D o w n X P o s \0 G e t L a 0010140 s t L e f t B u t t o n D o w n 0010160 Y P o s \0 G e t L a s t R i g h 0010200 t B u t t o n D o w n T i m e S 0010220 t a m p \0 G e t L a s t R i g h 0010240 t B u t t o n D o w n K e y F l 0010260 a g s \0 G e t L a s t R i g h t 0010300 B u t t o n D o w n X P o s \0 G 0010320 e t L a s t R i g h t B u t t o 0010340 n D o w n Y P o s \0 G e t L a s 0010360 t L e f t B u t t o n U p T i m 0010400 e S t a m p \0 G e t L a s t L e 0010420 f t B u t t o n U p K e y F l a 0010440 g s \0 G e t L a s t L e f t B u 0010460 t t o n U p X P o s \0 G e t L a 0010500 s t L e f t B u t t o n U p Y P 0010520 o s \0 G e t L a s t R i g h t B 0010540 u t t o n U p T i m e S t a m p 0010560 \0 G e t L a s t R i g h t B u t 0010600 t o n U p K e y F l a g s \0 G e 0010620 t L a s t R i g h t B u t t o n 0010640 U p X P o s \0 G e t L a s t R i 0010660 g h t B u t t o n U p Y P o s \0 0010700 G e t L a s t L e f t B u t t o 0010720 n D b l T i m e S t a m p \0 G e 0010740 t L a s t L e f t B u t t o n D 0010760 b l K e y F l a g s \0 G e t L a 0011000 s t L e f t B u t t o n D b l X 0011020 P o s \0 G e t L a s t L e f t B 0011040 u t t o n D b l Y P o s \0 G e t 0011060 L a s t R i g h t B u t t o n D 0011100 b l T i m e S t a m p \0 G e t L 0011120 a s t R i g h t B u t t o n D b 0011140 l K e y F l a g s \0 G e t L a s 0011160 t R i g h t B u t t o n D b l X 0011200 P o s \0 G e t L a s t R i g h t 0011220 B u t t o n D b l Y P o s \0 G e 0011240 t L a s t M o u s e M o v e T i 0011260 m e S t a m p \0 G e t L a s t M 0011300 o u s e M o v e K e y F l a g s 0011320 \0 G e t L a s t M o u s e M o v 0011340 e X P o s \0 G e t L a s t M o u 0011360 s e M o v e Y P o s \0 G e t L a 0011400 s t K e y D o w n T i m e S t a 0011420 m p \0 G e t L a s t K e y D o w 0011440 n K e y \0 G e t L a s t K e y U 0011460 p T i m e S t a m p \0 G e t L a 0011500 s t K e y U p K e y \0 G e t L a 0011520 s t K e y P r e s s T i m e S t 0011540 a m p \0 G e t L a s t K e y P r 0011560 e s s K e y \0 S e t A u t h o r 0011600 \0 S e t T i t l e \0 S e t C o p 0011620 y r i g h t \0 G e t L o o p \0 S 0011640 e t L o o p \0 G e t I s P l u s 0011660 \0 G e t C o n s o l e E v e n t 0011700 s \0 S e t C o n s o l e E v e n 0011720 t s \0 G e t D R M I n f o \0 0011736 So it would also seem that whatever code is at work here does not work correctly with symbolic links.
So, is /home/wag/nightly/plugins a symbolic link, or is the xpt file itself a symlink? Do you mind attaching the outout of ls -R in /home/wag/nightly?
OK the folder is not a symlink. Each individual file is my install procedure for 32-bit does this. cd /usr/lib/mozilla tar cf - plugins | (cd ~/nightly; tar xf -) ls -lR yields ls -lR .: total 50364 -rw-r--r--. 1 wag wag 1893 Jun 13 15:06 active-update.xml -rw-r--r--. 1 wag wag 454 Jun 12 07:04 application.ini -rw-r--r--. 1 wag wag 25234 Jun 12 07:04 blocklist.xml drwxr-xr-x. 3 wag wag 4096 Jun 12 07:04 chrome -rw-r--r--. 1 wag wag 36 Jun 12 07:04 chrome.manifest drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 components -rwxr-xr-x. 1 wag wag 155588 Jun 12 07:04 crashreporter -rw-r--r--. 1 wag wag 4003 Jun 12 07:04 crashreporter.ini -rw-r--r--. 1 wag wag 783 Jun 12 07:04 crashreporter-override.ini drwxr-xr-x. 3 wag wag 4096 Jun 12 07:04 defaults -rw-r--r--. 1 wag wag 142 Jun 12 07:04 dependentlibs.list drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 dictionaries drwxr-xr-x. 3 wag wag 4096 Jun 12 07:04 extensions -rwxr-xr-x. 1 wag wag 104952 Jun 12 07:04 firefox -rwxr-xr-x. 1 wag wag 104956 Jun 12 07:04 firefox-bin drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 icons -rw-r--r--. 1 wag wag 478 Jun 12 07:04 libfreebl3.chk -rwxr-xr-x. 1 wag wag 331786 Jun 12 07:04 libfreebl3.so -rwxr-xr-x. 1 wag wag 8610 Jun 12 07:04 libmozalloc.so -rwxr-xr-x. 1 wag wag 694375 Jun 12 07:04 libmozsqlite3.so -rwxr-xr-x. 1 wag wag 236055 Jun 12 07:04 libnspr4.so -rwxr-xr-x. 1 wag wag 1049330 Jun 12 07:04 libnss3.so -rwxr-xr-x. 1 wag wag 436853 Jun 12 07:04 libnssckbi.so -rw-r--r--. 1 wag wag 478 Jun 12 07:04 libnssdbm3.chk -rwxr-xr-x. 1 wag wag 148374 Jun 12 07:04 libnssdbm3.so -rwxr-xr-x. 1 wag wag 126270 Jun 12 07:04 libnssutil3.so -rwxr-xr-x. 1 wag wag 17184 Jun 12 07:04 libplc4.so -rwxr-xr-x. 1 wag wag 13513 Jun 12 07:04 libplds4.so -rwxr-xr-x. 1 wag wag 163904 Jun 12 07:04 libsmime3.so -rw-r--r--. 1 wag wag 478 Jun 12 07:04 libsoftokn3.chk -rwxr-xr-x. 1 wag wag 232201 Jun 12 07:04 libsoftokn3.so -rwxr-xr-x. 1 wag wag 223644 Jun 12 07:04 libssl3.so -rwxr-xr-x. 1 wag wag 17433 Jun 12 07:04 libxpcom.so -rwxr-xr-x. 1 wag wag 39077616 Jun 12 07:04 libxul.so -rwxr-xr-x. 1 wag wag 99862 Jun 12 07:04 mozilla-xremote-client -rw-r--r--. 1 wag wag 7705992 Jun 12 07:04 omni.ja -rw-r--r--. 1 wag wag 128 Jun 12 07:04 platform.ini -rwxr-xr-x. 1 wag wag 89166 Jun 12 07:04 plugin-container drwxr-xr-x. 2 wag wag 4096 Jun 9 11:07 plugins -rw-r--r--. 1 wag wag 1865 Jun 12 07:04 precomplete -rw-r--r--. 1 wag wag 35697 Jun 12 07:04 removed-files -rwxr-xr-x. 1 wag wag 8915 Jun 12 07:04 run-mozilla.sh drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 searchplugins -rw-r--r--. 1 wag wag 825 Jun 12 07:04 Throbber-small.gif drwxr-xr-x. 4 wag wag 4096 Jun 13 15:06 updated -rwxr-xr-x. 1 wag wag 157694 Jun 12 07:04 updater -rw-r--r--. 1 wag wag 681 Jun 12 07:04 updater.ini drwxr-xr-x. 3 wag wag 4096 Jun 13 15:06 updates -rw-r--r--. 1 wag wag 132 Jun 12 07:04 update-settings.ini -rw-r--r--. 1 wag wag 57 Jun 13 15:06 updates.xml drwxr-xr-x. 3 wag wag 4096 Jun 12 07:04 webapprt -rwxr-xr-x. 1 wag wag 141219 Jun 12 07:04 webapprt-stub ./chrome: total 4 drwxr-xr-x. 3 wag wag 4096 Jun 12 07:04 icons ./chrome/icons: total 4 drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 default ./chrome/icons/default: total 16 -rw-r--r--. 1 wag wag 924 Jun 12 07:04 default16.png -rw-r--r--. 1 wag wag 2603 Jun 12 07:04 default32.png -rw-r--r--. 1 wag wag 5040 Jun 12 07:04 default48.png ./components: total 260 -rw-r--r--. 1 wag wag 137 Jun 12 07:04 binary.manifest -rwxr-xr-x. 1 wag wag 91794 Jun 12 07:04 libbrowsercomps.so -rwxr-xr-x. 1 wag wag 41095 Jun 12 07:04 libdbusservice.so -rwxr-xr-x. 1 wag wag 61826 Jun 12 07:04 libmozgnome.so -rwxr-xr-x. 1 wag wag 55490 Jun 12 07:04 libnkgnomevfs.so ./defaults: total 4 drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 pref ./defaults/pref: total 4 -rw-r--r--. 1 wag wag 329 Jun 12 07:04 channel-prefs.js ./dictionaries: total 616 -rw-r--r--. 1 wag wag 3274 Jun 12 07:04 en-US.aff -rw-r--r--. 1 wag wag 624100 Jun 12 07:04 en-US.dic ./extensions: total 4 drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 {972ce4c6-7e08-4474-a285-3208198ce6fd} ./extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}: total 8 -rw-r--r--. 1 wag wag 2185 Jun 12 07:04 icon.png -rw-r--r--. 1 wag wag 1325 Jun 12 07:04 install.rdf ./icons: total 32 -rw-r--r--. 1 wag wag 24890 Jun 12 07:04 mozicon128.png -rw-r--r--. 1 wag wag 4030 Jun 12 07:04 updater.png ./plugins: total 0 lrwxrwxrwx. 1 wag wag 39 Jun 9 11:07 libflashplayer.so -> /usr/lib/flash-plugin/libflashplayer.so lrwxrwxrwx. 1 wag wag 39 Apr 20 2011 nphelix.so -> /opt/real/RealPlayer/mozilla/nphelix.so lrwxrwxrwx. 1 wag wag 40 Apr 20 2011 nphelix.xpt -> /opt/real/RealPlayer/mozilla/nphelix.xpt ./searchplugins: total 28 -rw-r--r--. 1 wag wag 1607 Jun 12 07:04 amazondotcom.xml -rw-r--r--. 1 wag wag 2465 Jun 12 07:04 bing.xml -rw-r--r--. 1 wag wag 1344 Jun 12 07:04 eBay.xml -rw-r--r--. 1 wag wag 3599 Jun 12 07:04 google.xml -rw-r--r--. 1 wag wag 2253 Jun 12 07:04 twitter.xml -rw-r--r--. 1 wag wag 1391 Jun 12 07:04 wikipedia.xml -rw-r--r--. 1 wag wag 1309 Jun 12 07:04 yahoo.xml ./updated: total 2820 drwxr-xr-x. 3 wag wag 4096 Jun 13 15:06 chrome -rw-r--r--. 1 wag wag 783 Jun 13 15:06 crashreporter-override.ini -rwxr-xr-x. 1 wag wag 104952 Jun 13 15:06 firefox -rwxr-xr-x. 1 wag wag 104956 Jun 13 15:06 firefox-bin -rwxr-xr-x. 1 wag wag 331786 Jun 13 15:06 libfreebl3.so -rwxr-xr-x. 1 wag wag 1049330 Jun 13 15:06 libnss3.so -rwxr-xr-x. 1 wag wag 436853 Jun 13 15:06 libnssckbi.so -rwxr-xr-x. 1 wag wag 17184 Jun 13 15:06 libplc4.so -rwxr-xr-x. 1 wag wag 13513 Jun 13 15:06 libplds4.so -rwxr-xr-x. 1 wag wag 163904 Jun 13 15:06 libsmime3.so -rwxr-xr-x. 1 wag wag 232201 Jun 13 15:06 libsoftokn3.so -rwxr-xr-x. 1 wag wag 223644 Jun 13 15:06 libssl3.so drwxr-xr-x. 2 wag wag 4096 Jun 13 15:06 plugins -rw-r--r--. 1 wag wag 1865 Jun 13 15:06 precomplete -rw-r--r--. 1 wag wag 825 Jun 13 15:06 Throbber-small.gif -rwxr-xr-x. 1 wag wag 157694 Jun 13 15:06 updater -rw-r--r--. 1 wag wag 681 Jun 13 15:06 updater.ini ./updated/chrome: total 4 drwxr-xr-x. 3 wag wag 4096 Jun 13 15:06 icons ./updated/chrome/icons: total 4 drwxr-xr-x. 2 wag wag 4096 Jun 13 15:06 default ./updated/chrome/icons/default: total 16 -rw-r--r--. 1 wag wag 924 Jun 13 15:06 default16.png -rw-r--r--. 1 wag wag 2603 Jun 13 15:06 default32.png -rw-r--r--. 1 wag wag 5040 Jun 13 15:06 default48.png ./updated/plugins: total 0 ./updates: total 8 drwxr-xr-x. 2 wag wag 4096 Jun 13 15:06 0 -rw-rw-r--. 1 wag wag 253 Jun 13 15:06 last-update.log ./updates/0: total 296 -rw-------. 1 wag wag 300000 Jun 13 15:06 update.mar ./webapprt: total 20 drwxr-xr-x. 2 wag wag 4096 Jun 12 07:04 components -rw-r--r--. 1 wag wag 9852 Jun 12 07:04 omni.ja -rw-r--r--. 1 wag wag 485 Jun 12 07:04 webapprt.ini ./webapprt/components: total 0
I also verified that symlinking the applications plugins folder to /usr/lib/mozilla/plugins works no better. But, more importantly I verified that if I remove the applications plugins folder altogether the update install with no issues.
OK, I see. We should probably teach ensure_copy and ensure_copy_recursive about symlinks...
Assignee: nobody → ehsan
Status: NEW → ASSIGNED
Only for the stage copy case. We don't want the updater following symlinks when applying mar files.
Oh, and the reason why I do this with symlinks is that some plugins, for example JAVA, will not work if you copy the .so file. It only works if it is a symlink.
(In reply to Robert Strong [:rstrong] (do not email) from comment #12) > Only for the stage copy case. We don't want the updater following symlinks > when applying mar files. Yeah, specifically, only for the case where we are copying the installation directory.
(In reply to Robert Strong [:rstrong] (do not email) from comment #12) > Only for the stage copy case. We don't want the updater following symlinks > when applying mar files. Yes, I would think that if the updater encounters a place where it would be following one of these symlinks, then an appropriate error should be reported. It should neither try to follow the symlink to update a file outside of the application folder, nor should it be replacing such a symlink with an actual file.
(In reply to Bill Gianopoulos [:WG9s] from comment #15) > (In reply to Robert Strong [:rstrong] (do not email) from comment #12) > > Only for the stage copy case. We don't want the updater following symlinks > > when applying mar files. > > Yes, I would think that if the updater encounters a place where it would be > following one of these symlinks, then an appropriate error should be > reported. It should neither try to follow the symlink to update a file > outside of the application folder, nor should it be replacing such a symlink > with an actual file. Which is what it already does when applying a mar file
On the other-hand. If this issue is really confined to the applications plugins folder which we no longer ship, it would be simpler to just ignore that folder for the purposes of the update.
(In reply to Bill Gianopoulos [:WG9s] from comment #17) > On the other-hand. If this issue is really confined to the applications > plugins folder which we no longer ship, it would be simpler to just ignore > that folder for the purposes of the update. It isn't
So according to the man page of stat, we need execute permission on all of the directories that lead to the file. So, for example I created a file named /tmp/foo/bar/x, removed the execute permission from /tmp/foo, and put a symlink to the file in the installation directory and managed to reproduce the bug. At any rate, we should make ensure_copy aware of symlinks, because otherwise symlinks will be converted to regular files, which is bad.
Attached patch Patch (v1)Splinter Review
This adds proper handling of symlinks to the updater, and also adds a test for it.
Attachment #632977 - Flags: review?(robert.bugzilla)
the update channel run quickly again, but as you can see, fails to apply. Landis.
(In reply to Bill Gianopoulos [:WG9s] from comment #7) > (In reply to Ehsan Akhgari [:ehsan] from comment #6) > > Landis/Bill, do you guys have the log files available for the failed > > updates? You can find them in /path/to/firefox/updates/last-update.log and > > /path/to/firefox/updates/update-backup.log. > > OK from the updates log it seems the issue is that it is getting errors > because of symlinks to plugins in the applications plugins directory. I > would think it should be ignoring this entire directory, but that is just me. > > I use the applications plugins directory because I am running 64-bit Linux > but both 32 and 64 bit Firefox and need a way to load 64-bit plugins for > 64-bit firefox and 32-bit for 32-bit etc. > > However the error I am getting also makes no sense because the log shows: > > Performing a background update > SOURCE DIRECTORY /home/wag/nightly/updates/0 > DESTINATION DIRECTORY /home/wag/nightly/updated > ensure_copy: failed to open the file for reading: > /home/wag/nightly/plugins/nphe > lix.xpt, err: 1 > failed: 6 > calling QuitProgressUI > > However that file is clearly readable: > > od -c /home/wag/nightly/plugins/nphelix.xpt > 0000000 X P C O M \n T y p e L i b \r \n 032 > 0000020 001 002 \0 002 \0 \0 023 336 \0 \0 \0 " \0 \0 \0 Y > 0000040 200 \0 \0 \0 \0 \0 \0 \0 \0 300 \0 \0 \0 \0 \0 \0 > 0000060 F \0 \0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 372 ! w > 0000100 n 215 i D b 214 I 272 366 303 340 256 \0 \0 \0 > 0000120 \r \0 \0 \0 \0 \0 \0 \0 031 n s I S u p p > 0000140 o r t s \0 n s I H X P l a y e r > 0000160 \0 \0 001 \0 265 \0 \0 \0 \a 230 002 200 220 ` \n \0 > 0000200 006 \0 \0 \0 \a 242 002 200 220 ` \n \0 006 \0 \0 \0 > 0000220 \a 263 003 200 220 200 \n ` \n \0 006 \0 \0 \0 \a 302 > 0000240 002 200 220 ` \n \0 006 \0 \0 \0 \a 315 002 200 \n ` > 0000260 \n \0 006 \0 \0 \0 \a 332 002 200 \n ` \n \0 006 \0 > 0000300 \0 \0 \a 346 001 ` \n \0 006 \0 \0 \0 \a 362 001 ` > 0000320 \n \0 006 \0 \0 \0 \a 372 001 ` \n \0 006 \0 \0 \0 > 0000340 \b 001 001 ` \n \0 006 \0 \0 \0 \b \b 001 ` 002 \0 > 0000360 006 \0 \0 \0 \b 024 002 200 002 ` \n \0 006 \0 \0 \0 > 0000400 \b 001 ` 002 \0 006 \0 \0 \0 \b * 001 ` 002 \0 > 0000420 006 \0 \0 \0 \b 7 001 ` 002 \0 006 \0 \0 \0 \b F > 0000440 001 ` 220 \0 006 \0 \0 \0 \b O 001 ` 220 \0 006 \0 > 0000460 \0 \0 \b Y 001 ` 220 \0 006 \0 \0 \0 \b f 001 ` > 0000500 \n \0 006 \0 \0 \0 \b s 001 ` \n \0 006 \0 \0 \0 > 0000520 \b | 002 200 \n ` \n \0 006 \0 \0 \0 \b 206 001 ` > 0000540 \n \0 006 \0 \0 \0 \b 221 001 ` \n \0 006 \0 \0 \0 > 0000560 \b 234 001 ` \n \0 006 \0 \0 \0 \b 250 001 ` \n \0 > 0000600 006 \0 \0 \0 \b 264 001 ` \n \0 006 \0 \0 \0 \b 301 > 0000620 001 ` \n \0 006 \0 \0 \0 \b 311 001 ` \n \0 006 \0 > 0000640 \0 \0 \b 326 001 ` \n \0 006 \0 \0 \0 \b 343 001 ` > 0000660 \n \0 006 \0 \0 \0 \b 357 001 ` \n \0 006 \0 \0 \0 > 0000700 \b 373 002 200 002 ` \n \0 006 \0 \0 \0 \t 005 002 200 > 0000720 \n ` \n \0 006 \0 \0 \0 \t \r 002 200 \n ` \n \0 > 0000740 006 \0 \0 \0 \t " 001 ` \n \0 006 \0 \0 \0 \t 7 > 0000760 002 200 \n ` \n \0 006 \0 \0 \0 \t H 002 200 \n ` > 0001000 \n \0 006 \0 \0 \0 \t \ 001 ` \n \0 006 \0 \0 \0 > 0001020 \t p 001 ` 002 \0 006 \0 \0 \0 \t 200 001 ` 002 \0 > 0001040 006 \0 \0 \0 \t 223 001 ` 002 \0 006 \0 \0 \0 \t 250 > 0001060 001 ` 002 \0 006 \0 \0 \0 \t 272 001 ` 002 \0 006 \0 > 0001100 \0 \0 \t 311 001 ` 002 \0 006 \0 \0 \0 \t 335 001 ` > 0001120 002 \0 006 \0 \0 \0 \t 361 001 ` \n \0 006 \0 \0 \0 > 0001140 \t 372 001 ` \n \0 006 \0 \0 \0 \n \n 002 200 \n ` > 0001160 \n \0 006 \0 \0 \0 \n 035 001 ` \n \0 006 \0 \0 \0 > 0001200 \n 0 001 ` \n \0 006 \0 \0 \0 \n D 001 ` \n \0 > 0001220 006 \0 \0 \0 \n K 001 ` \n \0 006 \0 \0 \0 \n [ > 0001240 001 ` \n \0 006 \0 \0 \0 \n i 002 200 220 ` \n \0 > 0001260 006 \0 \0 \0 \n t 002 200 \n ` \n \0 006 \0 \0 \0 > 0001300 \n 203 001 ` \n \0 006 \0 \0 \0 \n 222 001 ` \n \0 > 0001320 006 \0 \0 \0 \n 236 002 200 220 ` \n \0 006 \0 \0 \0 > 0001340 \n 252 001 ` 220 \0 006 \0 \0 \0 \n 271 001 ` \n \0 > 0001360 006 \0 \0 \0 \n 305 002 200 \n ` \n \0 006 \0 \0 \0 > 0001400 \n 321 002 200 \n ` \n \0 006 \0 \0 \0 \n 334 001 ` > 0001420 \n \0 006 \0 \0 \0 \n 347 001 ` 220 \0 006 \0 \0 \0 > 0001440 \n 361 001 ` \n \0 006 \0 \0 \0 \n 371 001 ` \n \0 > 0001460 006 \0 \0 \0 \v 002 001 ` \n \0 006 \0 \0 \0 \v 017 > 0001500 001 ` 220 \0 006 \0 \0 \0 \v " 002 200 220 ` \n \0 > 0001520 006 \0 \0 \0 \v 5 001 ` \n \0 006 \0 \0 \0 \v ? > 0001540 001 ` 002 \0 006 \0 \0 \0 \v M 001 ` 002 \0 006 \0 > 0001560 \0 \0 \v Z 001 ` 220 \0 006 \0 \0 \0 \v e 001 ` > 0001600 \n \0 006 \0 \0 \0 \v y 001 ` \n \0 006 \0 \0 \0 > 0001620 \v 215 001 ` \n \0 006 \0 \0 \0 \v 243 001 ` 220 \0 > 0001640 006 \0 \0 \0 \v 257 001 ` \n \0 006 \0 \0 \0 \v 277 > 0001660 001 ` \n \0 006 \0 \0 \0 \v 315 001 ` \n \0 006 \0 > 0001700 \0 \0 \v 333 001 ` \n \0 006 \0 \0 \0 \v 355 001 ` > 0001720 \n \0 006 \0 \0 \0 \v 365 001 ` \n \0 006 \0 \0 \0 > 0001740 \f 001 001 ` 002 \0 006 \0 \0 \0 \f \f 001 ` \n \0 > 0001760 006 \0 \0 \0 \f 031 001 ` \n \0 006 \0 \0 \0 \f , > 0002000 001 ` \n \0 006 \0 \0 \0 \f > 001 ` 002 \0 006 \0 > 0002020 \0 \0 \f H 002 200 \n ` \n \0 006 \0 \0 \0 \f R > 0002040 002 200 \n ` \n \0 006 \0 \0 \0 \f d 002 200 \n ` > 0002060 \n \0 006 \0 \0 \0 \f z 002 200 \n ` \n \0 006 \0 > 0002100 \0 \0 \f 216 002 200 \n ` \n \0 006 \0 \0 \0 \f 242 > 0002120 001 ` \n \0 006 \0 \0 \0 \f 260 001 ` \n \0 006 \0 > 0002140 \0 \0 \f 276 001 ` \n \0 006 \0 \0 \0 \f 316 002 200 > 0002160 \n ` \n \0 006 \0 \0 \0 \f 330 001 ` \n \0 006 \0 > 0002200 \0 \0 \f 342 002 200 002 ` \n \0 006 \0 \0 \0 \f 355 > 0002220 002 200 \n ` \n \0 006 \0 \0 \0 \f 372 002 200 \n ` > 0002240 \n \0 006 \0 \0 \0 \r \f 002 200 \n ` \n \0 006 \0 > 0002260 \0 \0 \r " 002 200 \n ` \n \0 006 \0 \0 \0 \r 5 > 0002300 002 200 \n ` \n \0 006 \0 \0 \0 \r C 001 ` \n \0 > 0002320 006 \0 \0 \0 \r Y 001 ` \n \0 006 \0 \0 \0 \r l > 0002340 001 ` \n \0 006 \0 \0 \0 \r z 001 ` 002 \0 006 \0 > 0002360 \0 \0 \r 210 001 ` 002 \0 006 \0 \0 \0 \r 230 002 200 > 0002400 002 ` 220 \0 006 \0 \0 \0 \r 246 002 200 002 ` 220 \0 > 0002420 006 \0 \0 \0 \r 265 002 200 002 ` 220 \0 006 \0 \0 \0 > 0002440 \r 307 002 200 002 ` 220 \0 006 \0 \0 \0 \r 330 002 200 > 0002460 \n ` \n \0 006 \0 \0 \0 \r 343 001 ` \n \0 006 \0 > 0002500 \0 \0 \r 356 001 ` 002 \0 006 \0 \0 \0 016 006 001 ` > 0002520 002 \0 006 \0 \0 \0 016 001 ` 002 \0 006 \0 \0 \0 > 0002540 016 7 001 ` 002 \0 006 \0 \0 \0 016 M 001 ` 220 \0 > 0002560 006 \0 \0 \0 016 g 001 ` 002 \0 006 \0 \0 \0 016 x > 0002600 001 ` 002 \0 006 \0 \0 \0 016 206 002 200 002 ` 220 \0 > 0002620 006 \0 \0 \0 016 231 002 200 002 ` \n \0 006 \0 \0 \0 > 0002640 016 247 001 ` 002 \0 006 \0 \0 \0 016 265 001 ` \n \0 > 0002660 006 \0 \0 \0 016 304 002 200 \n ` \n \0 006 \0 \0 \0 > 0002700 016 323 003 200 002 200 \n ` \n \0 006 \0 \0 \0 016 346 > 0002720 002 200 002 ` \n \0 006 \0 \0 \0 016 371 002 200 \n ` > 0002740 \n \0 006 \0 \0 \0 017 \b 001 ` \n \0 006 \0 \0 \0 > 0002760 017 027 001 ` 220 \0 006 \0 \0 \0 017 % 001 ` 220 \0 > 0003000 006 \0 \0 \0 017 = 001 ` 220 \0 006 \0 \0 \0 017 T > 0003020 001 ` 002 \0 006 \0 \0 \0 017 i 001 ` 002 \0 006 \0 > 0003040 \0 \0 017 } 001 ` 220 \0 006 \0 \0 \0 017 227 001 ` > 0003060 002 \0 006 \0 \0 \0 017 254 001 ` 002 \0 006 \0 \0 \0 > 0003100 017 313 001 ` 002 \0 006 \0 \0 \0 017 351 001 ` 002 \0 > 0003120 006 \0 \0 \0 020 003 001 ` 002 \0 006 \0 \0 \0 020 035 > 0003140 001 ` 002 \0 006 \0 \0 \0 020 = 001 ` 002 \0 006 \0 > 0003160 \0 \0 020 \ 001 ` 002 \0 006 \0 \0 \0 020 w 001 ` > 0003200 002 \0 006 \0 \0 \0 020 222 001 ` 002 \0 006 \0 \0 \0 > 0003220 020 257 001 ` 002 \0 006 \0 \0 \0 020 313 001 ` 002 \0 > 0003240 006 \0 \0 \0 020 343 001 ` 002 \0 006 \0 \0 \0 020 373 > 0003260 001 ` 002 \0 006 \0 \0 \0 021 031 001 ` 002 \0 006 \0 > 0003300 \0 \0 021 6 001 ` 002 \0 006 \0 \0 \0 021 O 001 ` > 0003320 002 \0 006 \0 \0 \0 021 h 001 ` 002 \0 006 \0 \0 \0 > 0003340 021 206 001 ` 002 \0 006 \0 \0 \0 021 243 001 ` 002 \0 > 0003360 006 \0 \0 \0 021 274 001 ` 002 \0 006 \0 \0 \0 021 325 > 0003400 001 ` 002 \0 006 \0 \0 \0 021 364 001 ` 002 \0 006 \0 > 0003420 \0 \0 022 022 001 ` 002 \0 006 \0 \0 \0 022 , 001 ` > 0003440 002 \0 006 \0 \0 \0 022 F 001 ` 002 \0 006 \0 \0 \0 > 0003460 022 ` 001 ` 002 \0 006 \0 \0 \0 022 y 001 ` 002 \0 > 0003500 006 \0 \0 \0 022 216 001 ` 002 \0 006 \0 \0 \0 022 243 > 0003520 001 ` 002 \0 006 \0 \0 \0 022 273 001 ` 002 \0 006 \0 > 0003540 \0 \0 022 315 001 ` 002 \0 006 \0 \0 \0 022 343 001 ` > 0003560 002 \0 006 \0 \0 \0 022 363 001 ` 002 \0 006 \0 \0 \0 > 0003600 023 \f 001 ` 002 \0 006 \0 \0 \0 023 037 002 200 220 ` > 0003620 \n \0 006 \0 \0 \0 023 ) 002 200 220 ` \n \0 006 \0 > 0003640 \0 \0 023 2 002 200 220 ` \n \0 006 \0 \0 \0 023 ? > 0003660 001 ` \n \0 006 \0 \0 \0 023 G 002 200 \n ` \n \0 > 0003700 006 \0 \0 \0 023 O 001 ` \n \0 006 \0 \0 \0 023 Y > 0003720 001 ` \n \0 006 \0 \0 \0 023 j 002 200 \n ` \n \0 > 0003740 006 \0 \0 \0 023 { 002 200 220 ` 220 \0 006 \0 \0 200 > 0003760 S e t S o u r c e \0 S e t C o n > 0004000 t r o l S t r i n g \0 S e t C o > 0004020 n s o l e N a m e \0 S e t C o n > 0004040 s o l e \0 S e t A u t o S t a r > 0004060 t \0 S e t N o L a b e l s \0 D o > 0004100 P l a y P a u s e \0 D o P a u s > 0004120 e \0 D o P l a y \0 D o S t o p \0 > 0004140 G e t P o s i t i o n \0 S e t P > 0004160 o s i t i o n \0 G e t L e n g t > 0004200 h \0 G e t P l a y S t a t e \0 G > 0004220 e t S t e r e o S t a t e \0 G e > 0004240 t T i t l e \0 G e t A u t h o r > 0004260 \0 G e t C o p y r i g h t \0 G e > 0004300 t L i v e S t a t e \0 I s Z o o > 0004320 m e d \0 S e t Z o o m e d \0 D o > 0004340 N e x t I t e m \0 D o P r e v I > 0004360 t e m \0 D o N e x t E n t r y \0 > 0004400 D o P r e v E n t r y \0 C a n P > 0004420 l a y P a u s e \0 C a n S t o p > 0004440 \0 H a s N e x t E n t r y \0 H a > 0004460 s P r e v E n t r y \0 H a s N e > 0004500 x t I t e m \0 H a s P r e v I t > 0004520 e m \0 S e t V o l u m e \0 S e t > 0004540 M u t e \0 S e t E n a b l e C o > 0004560 n t e x t M e n u \0 G e t E n a > 0004600 b l e C o n t e x t M e n u \0 E > 0004620 n a b l e M e s s a g e B o x \0 > 0004640 S e t E n a b l e M e s s a g e > 0004660 B o x \0 G e t E n a b l e M e s > 0004700 s a g e B o x \0 G e t P a c k e > 0004720 t s T o t a l \0 G e t P a c k e > 0004740 t s R e c e i v e d \0 G e t P a > 0004760 c k e t s O u t O f O r d e r \0 > 0005000 G e t P a c k e t s M i s s i n > 0005020 g \0 G e t P a c k e t s L a t e > 0005040 \0 G e t B a n d w i d t h A v e > 0005060 r a g e \0 G e t B a n d w i d t > 0005100 h C u r r e n t \0 A b o u t B o > 0005120 x \0 E d i t P r e f e r e n c e > 0005140 s \0 S e t S h o w P r e f e r e > 0005160 n c e s \0 H i d e S h o w S t a > 0005200 t i s t i c s \0 I s S t a t i s > 0005220 t i c s V i s i b l e \0 I s D o > 0005240 n e \0 S t a t u s S c a n S t a > 0005260 r t \0 S t a t u s S c a n E n d > 0005300 \0 S t a t u s S c a n \0 S e t A > 0005320 u t o G o T o U R L \0 G e t A u > 0005340 t o G o T o U R L \0 P r o c e s > 0005360 s I d l e \0 S e t C o n t r o l > 0005400 s \0 G e t V e r s i o n I n f o > 0005420 \0 G e t P r e F e t c h \0 S e t > 0005440 P r e F e t c h \0 S e t S h u f > 0005460 f l e \0 G e t S h u f f l e \0 G > 0005500 e t S o u r c e \0 C a n P l a y > 0005520 \0 C a n P a u s e \0 G e t A u t > 0005540 o S t a r t \0 G e t B a c k g r > 0005560 o u n d C o l o r \0 S e t B a c > 0005600 k g r o u n d C o l o r \0 G e t > 0005620 C e n t e r \0 G e t C l i p H e > 0005640 i g h t \0 G e t C l i p W i d t > 0005660 h \0 G e t C o n s o l e \0 G e t > 0005700 E n a b l e D o u b l e S i z e > 0005720 \0 G e t E n a b l e F u l l S c > 0005740 r e e n \0 G e t E n a b l e O r > 0005760 i g i n a l S i z e \0 G e t C o > 0006000 n t r o l s \0 G e t O r i g i n > 0006020 a l S i z e \0 G e t F u l l S c > 0006040 r e e n \0 G e t D o u b l e S i > 0006060 z e \0 G e t M a i n t a i n A s > 0006100 p e c t \0 G e t M u t e \0 G e t > 0006120 N o L a b e l s \0 G e t N u m L > 0006140 o o p \0 G e t S h o w A b o u t > 0006160 \0 G e t S h o w P r e f e r e n > 0006200 c e s \0 G e t S h o w S t a t i > 0006220 s t i c s \0 G e t V o l u m e \0 > 0006240 S e t C e n t e r \0 S e t M a i > 0006260 n t a i n A s p e c t \0 S e t E > 0006300 n a b l e O r i g i n a l S i z > 0006320 e \0 S e t E n a b l e D o u b l > 0006340 e S i z e \0 S e t E n a b l e F > 0006360 u l l S c r e e n \0 S e t D o u > 0006400 b l e S i z e \0 S e t F u l l S > 0006420 c r e e n \0 S e t O r i g i n a > 0006440 l S i z e \0 S e t N o L o g o \0 > 0006460 G e t N o L o g o \0 S e t N u m > 0006500 L o o p \0 S e t S h o w A b o u > 0006520 t \0 S e t S h o w S t a t i s t > 0006540 i c s \0 S e t W a n t K e y b o > 0006560 a r d E v e n t s \0 S e t W a n > 0006600 t M o u s e E v e n t s \0 S e t > 0006620 W a n t E r r o r s \0 G e t W a > 0006640 n t K e y b o a r d E v e n t s > 0006660 \0 G e t W a n t M o u s e E v e > 0006700 n t s \0 G e t W a n t E r r o r > 0006720 s \0 G e t N u m E n t r i e s \0 > 0006740 G e t C u r r e n t E n t r y \0 > 0006760 G e t E n t r y T i t l e \0 G e > 0007000 t E n t r y A u t h o r \0 G e t > 0007020 E n t r y C o p y r i g h t \0 G > 0007040 e t E n t r y A b s t r a c t \0 > 0007060 S e t C a n S e e k \0 G e t C a > 0007100 n S e e k \0 G e t B u f f e r i > 0007120 n g T i m e E l a p s e d \0 G e > 0007140 t B u f f e r i n g T i m e R e > 0007160 m a i n i n g \0 G e t C o n n e > 0007200 c t i o n B a n d w i d t h \0 G > 0007220 e t P r e f e r e d L a n g u a > 0007240 g e I D \0 G e t P r e f e r e d > 0007260 L a n g u a g e S t r i n g \0 G > 0007300 e t U s e r C o u n t r y I D \0 > 0007320 G e t N u m S o u r c e s \0 G e > 0007340 t S o u r c e T r a n s p o r t > 0007360 \0 S e t V i d e o S t a t e \0 G > 0007400 e t V i d e o S t a t e \0 G e t > 0007420 C o n t e x t M e n u \0 S e t C > 0007440 o n t e x t M e n u \0 S e t C o > 0007460 n t e x t M e n u I t e m \0 G e > 0007500 t C o n t e x t M e n u I t e m > 0007520 \0 S e t I m a g e S t a t u s \0 > 0007540 G e t I m a g e S t a t u s \0 G > 0007560 e t L a s t S t a t u s \0 G e t > 0007600 L a s t E r r o r M o r e I n f > 0007620 o U R L \0 G e t L a s t E r r o > 0007640 r U s e r S t r i n g \0 G e t L > 0007660 a s t E r r o r U s e r C o d e > 0007700 \0 G e t L a s t E r r o r R M A > 0007720 C o d e \0 G e t L a s t E r r o > 0007740 r R M A C o d e S t r i n g \0 G > 0007760 e t L a s t E r r o r S e v e r > 0010000 i t y \0 G e t L a s t L e f t B > 0010020 u t t o n D o w n T i m e S t a > 0010040 m p \0 G e t L a s t L e f t B u > 0010060 t t o n D o w n K e y F l a g s > 0010100 \0 G e t L a s t L e f t B u t t > 0010120 o n D o w n X P o s \0 G e t L a > 0010140 s t L e f t B u t t o n D o w n > 0010160 Y P o s \0 G e t L a s t R i g h > 0010200 t B u t t o n D o w n T i m e S > 0010220 t a m p \0 G e t L a s t R i g h > 0010240 t B u t t o n D o w n K e y F l > 0010260 a g s \0 G e t L a s t R i g h t > 0010300 B u t t o n D o w n X P o s \0 G > 0010320 e t L a s t R i g h t B u t t o > 0010340 n D o w n Y P o s \0 G e t L a s > 0010360 t L e f t B u t t o n U p T i m > 0010400 e S t a m p \0 G e t L a s t L e > 0010420 f t B u t t o n U p K e y F l a > 0010440 g s \0 G e t L a s t L e f t B u > 0010460 t t o n U p X P o s \0 G e t L a > 0010500 s t L e f t B u t t o n U p Y P > 0010520 o s \0 G e t L a s t R i g h t B > 0010540 u t t o n U p T i m e S t a m p > 0010560 \0 G e t L a s t R i g h t B u t > 0010600 t o n U p K e y F l a g s \0 G e > 0010620 t L a s t R i g h t B u t t o n > 0010640 U p X P o s \0 G e t L a s t R i > 0010660 g h t B u t t o n U p Y P o s \0 > 0010700 G e t L a s t L e f t B u t t o > 0010720 n D b l T i m e S t a m p \0 G e > 0010740 t L a s t L e f t B u t t o n D > 0010760 b l K e y F l a g s \0 G e t L a > 0011000 s t L e f t B u t t o n D b l X > 0011020 P o s \0 G e t L a s t L e f t B > 0011040 u t t o n D b l Y P o s \0 G e t > 0011060 L a s t R i g h t B u t t o n D > 0011100 b l T i m e S t a m p \0 G e t L > 0011120 a s t R i g h t B u t t o n D b > 0011140 l K e y F l a g s \0 G e t L a s > 0011160 t R i g h t B u t t o n D b l X > 0011200 P o s \0 G e t L a s t R i g h t > 0011220 B u t t o n D b l Y P o s \0 G e > 0011240 t L a s t M o u s e M o v e T i > 0011260 m e S t a m p \0 G e t L a s t M > 0011300 o u s e M o v e K e y F l a g s > 0011320 \0 G e t L a s t M o u s e M o v > 0011340 e X P o s \0 G e t L a s t M o u > 0011360 s e M o v e Y P o s \0 G e t L a > 0011400 s t K e y D o w n T i m e S t a > 0011420 m p \0 G e t L a s t K e y D o w > 0011440 n K e y \0 G e t L a s t K e y U > 0011460 p T i m e S t a m p \0 G e t L a > 0011500 s t K e y U p K e y \0 G e t L a > 0011520 s t K e y P r e s s T i m e S t > 0011540 a m p \0 G e t L a s t K e y P r > 0011560 e s s K e y \0 S e t A u t h o r > 0011600 \0 S e t T i t l e \0 S e t C o p > 0011620 y r i g h t \0 G e t L o o p \0 S > 0011640 e t L o o p \0 G e t I s P l u s > 0011660 \0 G e t C o n s o l e E v e n t > 0011700 s \0 S e t C o n s o l e E v e n > 0011720 t s \0 G e t D R M I n f o \0 > 0011736 > > So it would also seem that whatever code is at work here does not work > correctly with symbolic links. I have this same scenario. symlinks to vlc and java in my 'working' nightly directory. Landis.
(In reply to Robert Strong [:rstrong] (do not email) from comment #12) > Only for the stage copy case. We don't want the updater following symlinks > when applying mar files. I agree.. don't want working install dir of nightly evaluating (following) symlink
Comment on attachment 632977 [details] [diff] [review] Patch (v1) >diff --git a/toolkit/mozapps/update/test/unit/test_0113_general.js b/toolkit/mozapps/update/test/unit/test_0113_general.js >--- a/toolkit/mozapps/update/test/unit/test_0113_general.js >+++ b/toolkit/mozapps/update/test/unit/test_0113_general.js >... >@@ -303,16 +357,17 @@ function run_test() { > logTestInfo("testing last modified time on the apply to directory has " + > "changed after a successful update (bug 600098)"); > let now = Date.now(); > let timeDiff = Math.abs(applyToDir.lastModifiedTime - now); > do_check_true(timeDiff < MAX_TIME_DIFFERENCE); > } > > checkFilesAfterUpdateSuccess(); >+ checkSymlink(); Shouldn't this only run when IS_UNIX is true? > // Sorting on Linux is different so skip this check for now. > if (!IS_UNIX) { > checkUpdateLogContents(LOG_COMPLETE_SWITCH_SUCCESS); > } > > // This shouldn't exist anyways in background updates, but let's make sure > logTestInfo("testing tobedeleted directory doesn't exist"); > toBeDeletedDir = getApplyDirFile("tobedeleted", true); >diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp >--- a/toolkit/mozapps/update/updater/updater.cpp >+++ b/toolkit/mozapps/update/updater/updater.cpp >@@ -546,37 +546,64 @@ static int ensure_parent_dir(const NS_tc > rv = OK; > } > } > *slash = NS_T('/'); > } > return rv; > } > >+#ifdef XP_UNIX >+static int ensure_copy_symlink(const NS_tchar *path, const NS_tchar *dest) >+{ >+ // Copy symlinks by creating a new symlink to the same target >+ NS_tchar target[MAXPATHLEN + 1] = {NS_T('\0')}; >+ int rv = readlink(path, target, MAXPATHLEN); >+ if (rv == -1) { >+ LOG(("ensure_copy: failed to read the link: " LOG_S ", err: %d\n", s/ensure_copy:/ensure_copy_symlink:/ >+ path, errno)); >+ return READ_ERROR; >+ } >+ rv = symlink(target, dest); >+ if (rv == -1) { >+ LOG(("ensure_copy: failed to create the new link: " LOG_S ", target: " LOG_S " err: %d\n", >+ dest, target, errno)); s/ensure_copy:/ensure_copy_symlink:/
Attachment #632977 - Flags: review?(robert.bugzilla) → review+
(In reply to Robert Strong [:rstrong] (do not email) from comment #24) > Comment on attachment 632977 [details] [diff] [review] > Patch (v1) > > >diff --git a/toolkit/mozapps/update/test/unit/test_0113_general.js b/toolkit/mozapps/update/test/unit/test_0113_general.js > >--- a/toolkit/mozapps/update/test/unit/test_0113_general.js > >+++ b/toolkit/mozapps/update/test/unit/test_0113_general.js > >... > >@@ -303,16 +357,17 @@ function run_test() { > > logTestInfo("testing last modified time on the apply to directory has " + > > "changed after a successful update (bug 600098)"); > > let now = Date.now(); > > let timeDiff = Math.abs(applyToDir.lastModifiedTime - now); > > do_check_true(timeDiff < MAX_TIME_DIFFERENCE); > > } > > > > checkFilesAfterUpdateSuccess(); > >+ checkSymlink(); > Shouldn't this only run when IS_UNIX is true? Right. Will fix before landing.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla16
Flags: in-testsuite+
Bill, Landis, I landed a fix which should prevent this issue from happening again a few hours ago. I have triggered a nightly build from that version, which will be available within a few hours. Once you upgrade to that build (you can verify that you're running the correct revision by going to about:buildconfig and verifying that you see "Built from https://hg.mozilla.org/mozilla-central/rev/983b91e5aa17"), updating to newer versions should work correctly. Please let me know if you notice problems after upgrading to the new Nightly. Thanks for your help and patience while we diagnosed and fixed this issue!
Ehsan is this ready for uplift to Aurora? Seems like we'd want to get this in early to make sure it's working on 15.
(In reply to Lukas Blakk [:lsblakk] from comment #28) > Ehsan is this ready for uplift to Aurora? Seems like we'd want to get this > in early to make sure it's working on 15. I think so, yes.
Comment on attachment 632977 [details] [diff] [review] Patch (v1) [Approval Request Comment] Bug caused by (feature/regressing bug #): bug 307181 User impact if declined: Some of the updates on Linux and Mac could probably fail. Testing completed (on m-c, etc.): Tested locally, and has baked for a few days on m-c, also the patch includes tests. Risk to taking this patch (and alternatives if risky): minimal String or UUID changes made by this patch: none
Attachment #632977 - Flags: approval-mozilla-aurora?
Comment on attachment 632977 [details] [diff] [review] Patch (v1) [Triage Comment] Let's land on Aurora 15 in support of re-enabling the feature.
Attachment #632977 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Can someone who was able to reproduce this bug earlier verify if it's fixed for Firefox 15.0 Beta? Installing 15.0b1 and waiting for an update should verify this.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: